- söz dizimi:
<activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFromRecents=["true" | "false"] android:banner="drawable resource" android:clearTaskOnLaunch=["true" | "false"] android:colorMode=[ "hdr" | "wideColorGamut"] android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "screenLayout", "fontScale", "uiMode", "orientation", "density", "screenSize", "smallestScreenSize"] android:directBootAware=["true" | "false"] android:documentLaunchMode=["intoExisting" | "always" | "none" | "never"] android:enabled=["true" | "false"] android:enabledOnBackInvokedCallback=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:immersive=["true" | "false"] android:label="string resource" android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance" | "singleInstancePerTask"] android:lockTaskMode=["normal" | "never" | "if_whitelisted" | "always"] android:maxRecents="integer" android:maxAspectRatio="float" android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:persistableMode=["persistRootOnly" | "persistAcrossReboots" | "persistNever"] android:permission="string" android:process="string" android:relinquishTaskIdentity=["true" | "false"] android:resizeableActivity=["true" | "false"] android:screenOrientation=["unspecified" | "behind" | "landscape" | "portrait" | "reverseLandscape" | "reversePortrait" | "sensorLandscape" | "sensorPortrait" | "userLandscape" | "userPortrait" | "sensor" | "fullSensor" | "nosensor" | "user" | "fullUser" | "locked"] android:showForAllUsers=["true" | "false"] android:stateNotNeeded=["true" | "false"] android:supportsPictureInPicture=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] > ... </activity>
- içerdiği:
<application>
- şunları içerebilir:
<intent-filter>
<meta-data>
<layout>
- description:
- Uygulamanın görsel kullanıcı arayüzünün bir kısmını uygulayan bir etkinlik (
Activity
alt sınıfı) tanımlar. Tüm etkinlikler, manifest dosyasında<activity>
öğeleriyle temsil edilmelidir. Bildirilmemiş olanlar sistem tarafından görünmez ve hiçbir zaman çalışmaz. - özellikler:
android:allowEmbedded
-
Özellikle başka bir etkinliğe ait
Display
gibi bir container'da bulunan alt etkinliklerde, etkinliğin başka bir etkinliğin yerleştirilmiş alt öğesi olarak başlatılabileceğini belirtir. Örneğin, Wear özel bildirimleri için kullanılan etkinlikler bunu bildirir. Böylece Wear, etkinliği başka bir süreçte bulunan bağlam akışında gösterebilir.Bu özelliğin varsayılan değeri
false
değeridir. android:allowTaskReparenting
- Etkinliğin, başlatan görevden, bir sonraki görevin ön plana geçeceği zaman olan bir göreve geçip geçemeyeceği. Taşınabiliyorsa
"true"
, başladığı görevde kalıyorsa"false"
olur.Bu özellik ayarlanmazsa
<application>
öğesinin karşılık gelenallowTaskReparenting
özelliği tarafından ayarlanan değer etkinlik için geçerli olur. Varsayılan değer"false"
değeridir.Normalde bir etkinlik başlatıldığında, onu başlatan etkinliğin göreviyle ilişkilendirilir ve tüm ömrü boyunca orada kalır. Bu özelliği, mevcut görevi artık gösterilmediğinde, görev için benzeşimine sahip olan göreve yeniden üstlenilmesi için zorlamak amacıyla kullanabilirsiniz. Genellikle bu, bir uygulamadaki işlemlerin, söz konusu uygulamayla ilişkili ana göreve taşınmasını sağlamak için kullanılır.
Örneğin, bir e-posta iletisi bir web sayfasına bağlantı içeriyorsa bağlantıyı tıkladığınızda sayfayı görüntüleyebilecek bir etkinlik açılır. Bu etkinlik, tarayıcı uygulaması tarafından tanımlanır ancak e-posta görevinin bir parçası olarak başlatılır. Tarayıcı görevi için yeniden üst öğe oluşturulursa bu, tarayıcının bir sonraki en başa geldiği zamanı gösterir ve e-posta görevi tekrar geldiğinde artık görünmez.
Bir etkinliğin yakın ilgi alanı
taskAffinity
özelliği tarafından tanımlanır. Bir görevin benzeşimi, kök etkinliğinin benzeşimi okunarak belirlenir. Bu nedenle, bir kök etkinlik, tanımı gereği her zaman aynı yakın ilgi alanına sahip bir görevdedir."singleTask"
veya"singleInstance"
başlatma modlarına sahip etkinlikler yalnızca bir görevin kökünde olabileceğinden, yeniden üst öğe oluşturma işlemi"standard"
ve"singleTop"
modlarıyla sınırlıdır. (AyrıcalaunchMode
özelliğine bakın.) android:alwaysRetainTaskState
- Aktivitenin yapıldığı görev durumunun her zaman sistem tarafından sürdürülüp sürdürülmediği.
"true"
ise ve"false"
sistem belirli durumlarda görevi başlangıç durumuna sıfırlayabiliyorsa. Varsayılan değer"false"
değeridir. Bu özellik, yalnızca bir görevin kök etkinliği için anlamlıdır. Diğer tüm etkinlikler için yoksayılır.Normalde sistem, belirli durumlarda ana ekranda ilgili görevi yeniden seçtiğinde, sistem bir görevi temizleyerek kök etkinliğin üstündeki yığındaki tüm etkinlikleri kaldırır. Genellikle bu, kullanıcı görevi 30 dakika gibi belirli bir süre boyunca ziyaret etmemişse yapılır.
Ancak bu özellik
"true"
olduğunda kullanıcılar nasıl ulaştıklarına bakılmaksızın her zaman göreve son durumunda döner. Bu, web tarayıcısı gibi kullanıcıların kaybetmek istemedikleri birçok açık sekme gibi birçok durumun bulunduğu uygulamalarda kullanışlıdır. android:autoRemoveFromRecents
- Bu özelliğe sahip etkinlik tarafından başlatılan görevlerin, görevdeki son etkinlik tamamlanana kadar Son Kullanılanlar ekranında kalıp kalmayacağı.
true
ise görev, Son Kullanılanlar ekranından otomatik olarak kaldırılır. Bu ayar, arayanınFLAG_ACTIVITY_RETAIN_IN_RECENTS
kullanımını geçersiz kılar."true"
veya"false"
olmak üzere bir boole değeri olmalıdır. android:banner
- İlişkilendirilmiş öğesi için genişletilmiş bir grafik banner sağlayan çekilebilir bir kaynak. Belirli bir etkinlik için varsayılan bir banner sağlamak amacıyla
<activity>
etiketiyle veya tüm uygulama etkinliklerine yönelik banner sağlamak için<application>
etiketiyle kullanın.Sistem, banner'ı Android TV ana ekranında bir uygulamayı temsil etmek için kullanır. Banner yalnızca ana ekranda görüntülendiğinden, sadece
CATEGORY_LEANBACK_LAUNCHER
amacını işleyen bir etkinliğe sahip uygulamalar tarafından belirtilir.Bu özellik, resmi içeren çekilebilir bir kaynağa (ör.
"@drawable/banner"
) referans olarak ayarlanır. Varsayılan banner yok.Daha fazla bilgi için TV Uygulamalarını Kullanmaya Başlayın bölümündeki Ana ekran banner'ı sağlama bölümüne bakın.
android:clearTaskOnLaunch
- Ana ekrandan yeniden başlatıldığında, kök etkinlik hariç tüm etkinliklerin görevden kaldırılıp kaldırılmayacağı.
Görev her zaman kök etkinliğine kadar ayrıştırılırsa
"true"
ve değilse"false"
. Varsayılan değer"false"
değeridir. Bu özellik yalnızca yeni bir görev başlatan etkinlikler (kök etkinliği) için anlamlıdır. Görevdeki diğer tüm etkinlikler için yoksayılır.Değer
"true"
olduğunda, kullanıcılar görevi her başlattığında, görevde en son ne yaptıklarına ve görevden ayrılmak için Geri veya Ana Sayfa düğmesini kullanıp kullanmadıklarına bakılmaksızın kök etkinliğine yönlendirilirler. Değer"false"
olduğunda, görev her zaman olmasa da bazı durumlarda etkinliklerden temizlenebilir. Daha fazla bilgi içinalwaysRetainTaskState
özelliğine bakın.Kullanıcının ana ekrandan P etkinliğini başlattığını ve oradan Q etkinliğine gittiğini varsayalım. Kullanıcı bir sonraki Ana Ekran'a dokunur ve P etkinliğine geri döner. Normalde kullanıcı Q etkinliğini görür, çünkü P'nin görevinde en son yaptığı şey budur. Bununla birlikte, P bu işareti
"true"
olarak ayarlarsa kullanıcı ana ekranda P etkinliğini başlattığında onun üzerindeki tüm etkinlikler (bu örnekte Q) kaldırılır. Dolayısıyla kullanıcı göreve döndüğünde yalnızca P'yi görür.Hem bu özellik hem de
allowTaskReparenting
"true"
ise yeniden üst öğe oluşturabilecek tüm etkinlikler, bu kullanıcıların yakın ilgi alanını paylaştıkları göreve taşınır. Daha sonra, geri kalan etkinlikler atlanır.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
ayarlanmazsa bu özellik yoksayılır. android:colorMode
Etkinliğin renk modunu belirtir. Belirtilmişse
hdr
veyawideColorGamut
olabilir.hdr
ise etkinliğin yüksek bir dinamik aralıkta (cihazın desteklemesi durumunda) görüntülenmesini ister.wideColorGamut
ise etkinliğin uyumlu cihazlarda geniş renk gamı modunda görüntülenmesini ister. Geniş renk gamı modunda pencere,SRGB
gamının dışında daha canlı renklerle oluşturulabilir. Cihaz geniş renk gamı oluşturmayı desteklemiyorsa bu özelliğin bir etkisi olmaz. Geniş renk modunda oluşturma hakkında daha fazla bilgi için Geniş renkli içerikle grafikleri iyileştirme konusuna bakın.android:configChanges
- Etkinliğin kendi kendine yaptığı yapılandırma değişikliklerini listeler. Çalışma zamanında bir yapılandırma değişikliği olduğunda etkinlik varsayılan olarak kapanır ve yeniden başlatılır. Ancak bu özellikle bir yapılandırma bildirilmesi, etkinliğin yeniden başlatılmasını engeller. Bunun yerine, etkinlik çalışmaya devam eder ve
onConfigurationChanged()
yöntemi çağrılır.Not: Uygulama performansını ve yanıt verme duyarlılığını iyileştirmek için bu özelliği yalnızca özel durumlarda kullanın. Daha fazla bilgi için Yapılandırma değişikliklerini işleme başlıklı makaleye bakın.
Aşağıdaki dizeler bu özellik için geçerli değerlerdir. Birden fazla değer
|
ile ayrılır (ör."locale|navigation|orientation"
).Değer Açıklama "density"
Kullanıcının farklı bir ekran ölçeği belirtmesi veya farklı bir ekranın etkin olması gibi görüntü yoğunluğunda yapılan bir değişiklik. API düzeyi 24'te eklendi.
"fontScale"
Yazı tipi ölçeklendirme faktöründe yapılan bir değişiklik (kullanıcının yeni bir genel yazı tipi boyutu seçmesi gibi). "keyboard"
Klavye türünde yapılan bir değişiklik (kullanıcının harici bir klavye takması gibi). "keyboardHidden"
Klavye erişilebilirliğinde yapılan bir değişiklik (örneğin, kullanıcının donanım klavyesini göstermesi). "layoutDirection"
Düzen yönünde yapılan bir değişiklik (ör. soldan sağa (LTR) sağdan sola (RTL))). API düzeyi 17'de eklendi.
"locale"
Kullanıcının metnin görüntüleneceği yeni bir dil seçmesi gibi yerel ayarlarda yapılan bir değişiklik. "mcc"
MM'yi güncelleyen bir SIM algılandığında, IMSI mobil ülke kodunda (MM) yapılan değişiklik. "mnc"
MNC'yi güncelleyen bir SIM algılandığında IMSI mobil ağ kodunda (MNC) değişiklik. "navigation"
Gezinme türüne (iztopu veya D-pad) TA değişikliği. Normalde bu durum söz konusu değildir. "orientation"
Ekran yönünde yapılan bir değişiklik (kullanıcının cihazı döndürmesi gibi).
Not: Uygulamanız Android 3.2 (API düzeyi 13) veya sonraki sürümleri hedefliyorsa
"screenLayout"
ve"screenSize"
yapılandırmalarını da bildirin. Çünkü cihaz dikey ve yatay yönler arasında geçiş yaptığında ekran düzeni ve ekran boyutu değişebilir."screenLayout"
Ekran düzeninde yapılan bir değişiklik (örneğin, farklı bir ekranın etkin hale gelmesi). "screenSize"
Mevcut kullanılabilir ekran boyutunda değişiklik. Bu değer, geçerli en boy oranıyla göreceli olarak kullanılabilir olan boyutta gerçekleşen bir değişikliği temsil eder. Bu nedenle, kullanıcı yatay ve dikey mod arasında geçiş yaptığında boyut değişir.
API düzeyi 13'te eklendi.
"smallestScreenSize"
Fiziksel ekran boyutunda değişiklik. Bu, yönden bağımsız olarak boyuttaki bir değişikliği temsil eder. Bu nedenle, yalnızca gerçek fiziksel ekran boyutu değiştiğinde (ör. harici bir ekrana geçildiğinde) değişir. Bu yapılandırmada yapılan bir değişiklik,
smallestWidth
yapılandırmasındaki bir değişikliğe karşılık gelir.API düzeyi 13'te eklendi.
"touchscreen"
Dokunmatik ekranda değişiklik. Normalde bu durum söz konusu değildir. "uiMode"
Kullanıcının cihazı masaya veya araba yuvasına yerleştirmesi ya da gece modunun değişmesi gibi kullanıcı arayüzü modunda yapılan bir değişiklik. Farklı kullanıcı arayüzü modları hakkında daha fazla bilgi için UiModeManager
konusuna bakın.API düzeyi 8'de eklendi.
Tüm bu yapılandırma değişiklikleri, uygulama tarafından görülen kaynak değerlerini etkileyebilir. Bu nedenle,
onConfigurationChanged()
çağrıldığında, değişikliği doğru bir şekilde işlemek için genellikle görünüm düzenleri ve çekilebilir öğeler dahil tüm kaynakları tekrar almak gerekir.Not: Çoklu pencere ile ilgili yapılandırma değişikliklerini işlemek için hem
"screenLayout"
hem de"smallestScreenSize"
kullanın. Çoklu pencere, Android 7.0 (API düzeyi 24) veya sonraki sürümlerde desteklenir. android:directBootAware
Etkinliğin Doğrudan Başlatma Farkında olup olmadığı, yani kullanıcı cihazın kilidini açmadan önce çalıştırılıp çalıştırılamayacağı.
Not: Doğrudan Başlatma sırasında, uygulamanızdaki bir etkinlik yalnızca cihazla korunan depolama alanında depolanan verilere erişebilir.
Varsayılan değer
"false"
değeridir.android:documentLaunchMode
- Bir etkinlik her başlatıldığında yeni bir etkinlik örneğinin göreve nasıl ekleneceğini belirtir.
Bu özellik, kullanıcının Son Kullanılanlar ekranında aynı uygulamadan birden fazla dokümanın görünmesine izin verir.
Bu özelliğin dört değeri vardır. Bu değerler, kullanıcı uygulamayla bir dokümanı açtığında aşağıdaki etkileri oluşturur:
Değer Açıklama "intoExisting"
Sistem, temel amacı ComponentName
ve veri URI'si ile başlatma amacınınkiyle eşleşen bir görevi arar. Sistem böyle bir görev bulursa, görevi temizler ve yeniden başlatır ve kök etkinliğionNewIntent(android.content.Intent)
çağrısını alır. Sistem böyle bir görev bulamazsa yeni bir görev oluşturur."always"
Etkinlik, doküman için yeni bir görev oluşturur (doküman önceden açılmış olsa bile). Bu işlem, hem FLAG_ACTIVITY_NEW_DOCUMENT
hem deFLAG_ACTIVITY_MULTIPLE_TASK
işaretlerinin ayarlanmasıyla aynıdır."none"
Etkinlik, etkinlik için yeni bir görev oluşturmaz. Bu varsayılan değerdir ve yalnızca FLAG_ACTIVITY_NEW_TASK
ayarlandığında yeni bir görev oluşturur. Son Kullanılanlar ekranı, etkinliği varsayılan olarak olduğu gibi değerlendirir: Uygulama için, kullanıcının en son çağırdığı etkinlikten devam eden tek bir görev görüntüler."never"
Niyet FLAG_ACTIVITY_NEW_DOCUMENT
içeriyor olsa bile etkinlik, yeni bir dokümanda başlatılmaz. Bunun ayarlanması,FLAG_ACTIVITY_NEW_DOCUMENT
veFLAG_ACTIVITY_MULTIPLE_TASK
işaretlerinin davranışını geçersiz kılar (Bunlardan biri etkinlikte ayarlanmışsa) ve Son Kullanılanlar ekranında, uygulama için kullanıcının en son çağırdığı etkinlikten devam eden tek bir görev görüntülenir.Not:
"none"
ve"never"
dışındaki değerler için etkinliklaunchMode="standard"
ile tanımlanır. Bu özellik belirtilmezsedocumentLaunchMode="none"
kullanılır. android:enabled
- Etkinliğin sistem tarafından örneklenip gösterilemeyeceği. Mümkünse
"true"
, izin verilmiyorsa"false"
olur. Varsayılan değer"true"
değeridir.<application>
öğesinin, etkinlikler de dahil olmak üzere tüm uygulama bileşenleri için geçerli olan kendienabled
özelliği vardır. Sistemin etkinliği örnekleyebilmesi için hem<application>
hem de<activity>
özelliklerinin her ikisi de varsayılan olarak"true"
olmalıdır. İkisinden biri"false"
ise örnek oluşturulamaz. android:enableOnBackInvokedCallback
- Bu işaret, etkinlik düzeyinde tahmine dayalı sistem animasyonlarını etkinleştirmenizi sağlar. Bu davranış, büyük çok etkinlikli uygulamaları tahmine dayalı geri hareketlerine taşımayı daha yönetilebilir hale getirir.
android:enableOnBackInvokedCallback=false
ayarlandığında, etiketi ayarladığınız yere bağlı olarak etkinlik düzeyinde veya uygulama düzeyinde tahmine dayalı geri animasyonları devre dışı bırakılır ve sisteme,OnBackInvokedCallback
platform API'sine yapılan çağrıları yoksayma talimatı verilir. android:excludeFromRecents
- Bu etkinlik tarafından başlatılan görevin
Son kullanılanlar ekranından hariç tutulup tutulmadığı. Yani bu etkinlik yeni bir görevin kök etkinliği olduğunda, bu özellik görevin son uygulamalar listesinde görünüp görünmeyeceğini belirler. Görev listeden hariç tutulursa
"true"
; dahil edilirse"false"
olur. Varsayılan değer"false"
değeridir. android:exported
- Etkinliğin diğer uygulamaların bileşenleri tarafından başlatılıp başlatılamayacağı:
"true"
ise etkinliğe tüm uygulamalar tarafından erişilebilir ve tam sınıf adıyla başlatılabilir."false"
ise etkinlik yalnızca aynı uygulamanın bileşenleri, aynı kullanıcı kimliğine sahip uygulamalar veya ayrıcalıklı sistem bileşenleri tarafından başlatılabilir. İntent filtresi olmadığında varsayılan olarak bu değer kullanılır.
Uygulamanızdaki bir etkinlik intent filtreleri içeriyorsa diğer uygulamaların başlatmasına izin vermek için bu öğeyi
"true"
olarak ayarlayın. Örneğin, etkinlik, uygulamanın ana etkinliğiyse vecategory
android.intent.category.LAUNCHER
içeriyorsa.Bu öğe
"false"
değerine ayarlanırsa ve bir uygulama etkinliği başlatmaya çalışırsa sistem birActivityNotFoundException
gönderir.Bu özellik, bir etkinliğin diğer uygulamalarla karşılaşmasını sınırlamanın tek yolu değildir. İzinler, etkinliği çağırabilecek harici varlıkları sınırlandırmak için de kullanılır.
permission
özelliğini inceleyin. android:finishOnTaskLaunch
- Kök etkinlik hariç, kullanıcının ana ekranda görevi seçerek görevini yeniden başlatması durumunda etkinliğin mevcut bir örneğinin kapatılıp kapatılmayacağı. Kapatılırsa
"true"
, değilse"false"
olur. Varsayılan değer"false"
değeridir.Hem bu özellik hem de
allowTaskReparenting
"true"
ise bu özellik diğerinden önceliklidir. Etkinliğin benzeşimi yoksayılır. Etkinlik yeniden üst öğe haline getirilmez, silinir.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
ayarlanmazsa bu özellik yoksayılır. android:hardwareAccelerated
- Bu etkinlik için donanım hızlandırmalı oluşturmanın etkinleştirilip etkinleştirilmediği. Etkinleştirilmişse
"true"
ve etkin değilse"false"
. Varsayılan değer"false"
değeridir.Android 3.0 ve sonraki sürümlerde, yaygın birçok 2D grafik işleminin performansını artırmak için uygulamalarda donanım hızlandırmalı bir OpenGL oluşturucu kullanılabilir. Donanım hızlandırmalı oluşturucu etkinleştirildiğinde Tuval, Boya, Xfermode, ColorFilter, Gölgelendirici ve Kamera'daki çoğu işlem hızlandırılır.
Bu, çerçevenin OpenGL kitaplıklarını açıkça kullanmayan uygulamalarda bile daha düzgün animasyonlar, daha düzgün kaydırma ve genel yanıt verme hızının artmasını sağlar. Donanım hızlandırmayı etkinleştirmek için gereken kaynakların artması nedeniyle uygulamanız daha fazla RAM tüketir.
OpenGL 2D işlemlerinin tümü hızlandırılmaz. Donanım hızlandırmalı oluşturucuyu etkinleştirirseniz uygulamanızın oluşturucuyu hatasız kullanıp kullanamayacağını test edin.
android:icon
- Etkinliği temsil eden simge. Aktivitenin bir temsilinin ekranda gösterilmesi gerektiğinde bu simge
kullanıcılara gösterilir. Örneğin, görevleri başlatan etkinliklere ilişkin simgeler, başlatıcı penceresinde görüntülenir.
Simgeyle birlikte genellikle bir etiket bulunur. Etiket hakkında bilgi için
android:label
özelliğine bakın.Bu özellik, resim tanımını içeren çekilebilir bir kaynağa referans olarak ayarlanır. Ayarlanmazsa bunun yerine, uygulamanın tamamı için belirtilen simge kullanılır. Daha fazla bilgi için
<application>
öğesininicon
özelliğine bakın.Etkinliğin simgesi, ister burada ister
<application>
öğesi tarafından ayarlanmış olsun, aynı zamanda etkinliğin tüm amaç filtreleri için varsayılan simgedir. Daha fazla bilgi için<intent-filter>
öğesininicon
özelliğine bakın. android:immersive
- Geçerli etkinliğin yoğun içerik modu ayarını belirler.
"true"
ise kapsayıcı mod, çalışma zamanındasetImmersive()
yöntemi kullanılarak değişse bileActivityInfo.flags
üyesi her zamanFLAG_IMMERSIVE
bitini ayarlar. android:label
- Etkinlikle ilgili kullanıcı tarafından okunabilir bir etiket. Etiket, etkinlik kullanıcıya sunulduğunda ekranda görüntülenir. Genellikle etkinlik simgesiyle
birlikte görüntülenir. Bu özellik ayarlanmazsa bunun yerine, bunun yerine uygulamanın tamamı için ayarlanan etiket kullanılır.
<application>
öğesininlabel
özelliğine bakın.Etkinliğin etiketi, ister burada ister
<application>
öğesi tarafından ayarlanmış olsun, aynı zamanda etkinliğin tüm intent filtreleri için varsayılan etikettir. Daha fazla bilgi için<intent-filter>
öğesininlabel
özelliğine bakın.Bu etiket, kullanıcı arayüzündeki diğer dizeler gibi yerelleştirilebilmesi için bir dize kaynağına başvuru olarak ayarlanır. Ancak, uygulamayı geliştirirken kolaylık sağlaması için ham dize olarak da ayarlanabilir.
android:launchMode
- Etkinliğin nasıl başlatılacağına dair bir talimat. Bir amacı gerçekleştirmek için etkinlik çağrıldığında ne olacağını belirlemek için
Intent
nesnelerinde etkinlik işaretleriyle (FLAG_ACTIVITY_*
sabit değerler) birlikte çalışan beş mod vardır:"standard"
"singleTop"
"singleTask"
"singleInstance"
"singleInstancePerTask"
Varsayılan mod
"standard"
'dur.Aşağıdaki tabloda gösterildiği gibi modlar, bir tarafta
"standard"
ve"singleTop"
, diğer tarafta"singleTask"
,"singleInstance"
ve"singleInstancePerTask"
etkinlik olacak şekilde iki ana gruba ayrılır."standard"
veya"singleTop"
başlatma modundaki bir etkinlik birden çok kez örneklenebilir.Örnekler herhangi bir göreve ait olabilir ve etkinlik görevinin herhangi bir yerinde bulunabilir. Genellikle,
Intent
nesnesiFLAG_ACTIVITY_NEW_TASK
talimatı içermediği takdirde farklı bir görev seçilirsestartActivity()
adlı görevde başlatılırlar. Daha fazla bilgi içintaskAffinity
özelliğine bakın.Buna karşılık
"singleTask"
,"singleInstance"
ve"singleInstancePerTask"
etkinliklerinin davranışları farklıdır."singleInstancePerTask"
her zaman etkinlik görevinin kökünde yer alır. Ayrıca cihaz, aynı anda"singleInstance"
etkinliğinin yalnızca bir örneğini barındırabilirkenFLAG_ACTIVITY_MULTIPLE_TASK
veyaFLAG_ACTIVITY_NEW_DOCUMENT
ayarlandığında"singleInstancePerTask
etkinliği farklı görevlerde birden çok kez oluşturulabilir."singleTask"
başlatma moduna sahip bir etkinlik,"singleInstance"
ve"singleInstancePerTask"
davranışlarını birleştirir: Etkinlik birden fazla kez örneklenebilir ve aynıtaskAffinity
öğesinin görevinde herhangi bir yerde bulunabilir. Ancak cihaz, etkinlik görevinin kökünde"singleTask"
etkinliğini bulmak için yalnızca bir görev gerçekleştirebilir."standard"
ve"singleTop"
modları bir açıdan birbirinden farklıdır: Bir"standard"
etkinliği için yeni bir amaç olduğunda, bu amaca yanıt vermek için sınıfın yeni bir örneği oluşturulur. Her örnek tek bir niyeti işler. Benzer şekilde, yeni bir amacı işlemek için yeni bir"singleTop"
etkinliği örneği de oluşturulabilir.Bununla birlikte, hedef görevin yığınının üst kısmında zaten mevcut bir etkinlik örneği varsa bu örnek, yeni amacı
onNewIntent()
çağrısıyla alır. Yeni örnek oluşturulmaz. Aksi takdirde,"singleTop"
etkinliğinin mevcut bir örneği hedef görevde ancak yığının tepesinde değilse veya bir yığının tepesinde olup hedef görevde değilse yeni bir örnek oluşturulur ve yığına aktarılır.Benzer şekilde, kullanıcı geçerli yığındaki bir etkinliğe giderse davranış, üst etkinliğin başlatma modu tarafından belirlenir. Üst etkinlik
singleTop
başlatma moduna sahipse (veyaup
amacıFLAG_ACTIVITY_CLEAR_TOP
içeriyorsa) üst öğe, yığının en üstüne getirilir ve durumu korunur.Gezinme amacı, üst etkinliğin
onNewIntent()
yöntemi tarafından alınır. Üst etkinliğin başlatma modustandard
varsa veup
amacıFLAG_ACTIVITY_CLEAR_TOP
içermiyorsa hem mevcut etkinlik hem de üst etkinliği yığından çıkar ve gezinme amacını almak için üst etkinliğin yeni bir örneği oluşturulur."singleInstance"
modu,"singleTask"
ve"singleInstancePerTask"
modlarından yalnızca bir açıdan farklıdır:"singleTask"
veya"singleInstancePerTask"
başlatma modu içeren bir etkinlik,"standard"
ve"singleTop"
etkinlikleri olmak üzere diğer etkinliklerin görev kapsamına alınmasını sağlar.Öte yandan,
"singleInstance"
etkinliği başka hiçbir etkinliğin bu görevin bir parçası olmasına izin vermez. Görevdeki tek etkinlik olmalıdır. Başka bir etkinlik başlatırsa bu etkinlik, amaçtaFLAG_ACTIVITY_NEW_TASK
olduğu gibi farklı bir göreve atanır.Kullanım örnekleri Başlatma modu Birden fazla örnek mi var? Yorumlar Çoğu etkinlik için normal başlatmalar "standard"
Evet Varsayılan. Sistem her zaman hedef görevdeki etkinliğin yeni bir örneğini oluşturur ve amacı buna yönlendirir. "singleTop"
Koşula bağlı olarak Hedef görevin en üstünde etkinliğin bir örneği zaten bulunuyorsa sistem, etkinliğin yeni bir örneğini oluşturmak yerine amacı onNewIntent()
yöntemine çağırarak bu örneğe yönlendirir.Özel lansmanlar
(genel kullanım için önerilmez)"singleTask"
Koşula bağlı olarak Sistem, yeni bir görevin kök dizininde etkinlik oluşturur veya aynı yakın ilgi alanına sahip mevcut bir görevdeki etkinliği bulur. Etkinliğin bir örneği zaten varsa ve görevin kökündeyse sistem, yeni bir örnek oluşturmak yerine niyeti onNewIntent()
yöntemine çağırarak mevcut örneğe yönlendirir."singleInstance"
Hayır "singleTask"
ile aynıdır. Tek fark, sistemin örneği barındıran göreve başka herhangi bir etkinlik başlatmamasıdır. Etkinlik her zaman görevin tek ve tek üyesidir."singleInstancePerTask"
Koşula bağlı olarak Etkinlik yalnızca görevin kök etkinliği, görevi oluşturan ilk etkinlik olarak çalışabilir. Bu nedenle, bir görevde bu etkinliğin yalnızca bir örneği bulunur. Ancak etkinlik farklı görevlerde birden çok kez gösterilebilir. Önceki tabloda gösterildiği gibi,
"standard"
varsayılan moddur ve çoğu etkinlik türü için uygundur."singleTop"
ayrıca birçok etkinlik türü için yaygın ve kullanışlı bir başlatma modudur. Diğer modlar ("singleTask"
,"singleInstance"
ve"singleInstancePerTask"
) çoğu uygulama için uygun değildir. Bunlar, kullanıcılara muhtemelen yabancı olan ve diğer birçok uygulamadan çok farklı olan bir etkileşim modeline yol açar.Seçtiğiniz başlatma modu ne olursa olsun, başlatma sırasında ve Geri düğmesini kullanarak diğer etkinliklerden ve görevlerden bu etkinliğe dönerken etkinliğin kullanılabilirliğini test ettiğinizden emin olun.
Başlatma modları ve
Intent
işaretleri ile etkileşimleri hakkında daha fazla bilgi için Görevler ve arka yığın bölümüne göz atın. android:lockTaskMode
- Cihaz kilit görevi modunda çalışırken sistemin bu etkinliği nasıl sunacağını belirler.
Android, görevleri kilit görevi modu adı verilen kapsamlı, kiosk benzeri bir modda çalıştırabilir. Sistem kilit görevi modunda çalıştığında, cihaz kullanıcıları Home uygulaması izin verilenler listesine eklenmemişse genellikle bildirimleri göremez, izin verilenler listesinde olmayan uygulamalara erişemez veya ana ekrana dönemez.
Sistem kilit görevi modundayken yalnızca bir cihaz politikası denetleyici (DPC) tarafından izin verilenler listesine alınan uygulamalar çalışabilir. Bununla birlikte, sistem ve ayrıcalıklı uygulamalar izin verilenler listesine eklenmeden kilit görevi modunda çalışabilir.
Değer, aşağıdaki
R.attr.lockTaskMode
dize değerlerinden herhangi biri olabilir:Değer Açıklama "normal"
Varsayılan değer. Bu, varsayılan değerdir. Görevler, görev kilitleme modunda başlatılmaz, ancak startLockTask()
çağrısı yapılarak bu moda yerleştirilebilir."never"
Görevler
lockTask
modunda başlatılmaz ve cihaz kullanıcısı bu görevleri Son Kullanılanlar ekranından sabitleyemez.Not: Bu mod yalnızca sistem ve ayrıcalıklı uygulamalarda kullanılabilir. Bu değere sahip ayrıcalıksız uygulamalar
normal
olarak değerlendirilir."if_whitelisted"
DPC bu pakete DevicePolicyManager.setLockTaskPackages()
kullanarak yetki verirse bu modalways
ile aynı olur ancak etkinliğin son kilitli görevse bitirilebilmesi için öncestopLockTask()
çağrısı yapması gerekir. DPC bu pakete izin vermiyorsa bu modnormal
ile aynı olur."always"
Bu etkinlikte rootlanmış görevler her zaman görev kilitleme modunda başlatılır. Bu görev başlatıldığında sistem zaten kilit görevi modundaysa yeni görev mevcut görevin yanında başlatılır. Bu modda başlatılan görevler,
finish()
çağrısı yaparak görev kilitleme modundan çıkabilir.Not: Bu mod yalnızca sistem ve ayrıcalıklı uygulamalarda kullanılabilir. Bu değere sahip ayrıcalıksız uygulamalar
normal
olarak değerlendirilir.Bu özellik, API düzeyi 23'te kullanıma sunulmuştur.
android:maxRecents
- Son kullanılanlar ekranında bu etkinliğe dayalı maksimum görev sayısıdır. Bu giriş sayısına ulaşıldığında, sistem en az kullanılan örneği Son Kullanılanlar ekranından kaldırır. Geçerli değerler, 1 ile 50 arasındaki tam sayılar veya düşük bellek kapasiteli cihazlarda 1 ile 25 arasındaki değerlerdir. Sıfır geçersiz. Varsayılan değer 16'dır.
android:maxAspectRatio
Etkinliğin desteklediği maksimum en boy oranı. Uygulama, daha geniş en boy oranına sahip bir cihazda çalışırsa sistem uygulamayı otomatik olarak sinemaskop yapar. Böylece uygulamanın belirtilen maksimum en boy oranında çalışabilmesi için ekranın bazı kısımları kullanılmadan kalır.
Maksimum en boy oranı, cihazın uzun boyutunun ondalık formunun daha kısa boyutuna bölümü olarak ifade edilir. Örneğin, maksimum en boy oranı 7:3 ise bu özelliğin değerini 2,33 olarak ayarlayın.
Giyilebilir olmayan cihazlarda bu özelliğin değeri 1, 33 veya daha büyük olmalıdır. Giyilebilir cihazlarda 1, 0 veya üzeri olmalıdır. Aksi takdirde, sistem ayarlanan değeri yoksayar.
Not:
resizeableActivity
değeri "true" değerine ayarlanmışsa bu özellik yoksayılır. Bunun nedeni, etkinliğinizin tüm boyutları desteklediği anlamına gelir.Bu özellik hakkında daha fazla bilgi için Maksimum en boy oranı belirtme bölümüne bakın.
android:multiprocess
- Etkinlik örneğinin, etkinliği başlatan bileşen sürecinde başlatılıp başlatılamayacağı. Mümkünse
"true"
tutarında, değilse"false"
tutarındadır. Varsayılan değer"false"
değeridir.Normalde bir etkinliğin yeni örneği, onu tanımlayan uygulamanın işleminde başlatılır. Böylece etkinliğin tüm örnekleri aynı işlemde çalışır. Bununla birlikte, bu işaret
"true"
olarak ayarlanırsa etkinliğin örnekleri birden fazla işlemde çalışabilir. Böylece, izin verildiğinde sistem, kullanıldığı her yerde örnekler oluşturabilir. İzin verildiğinde, neredeyse hiçbir zaman gerekli veya istenmez bir şey olur. android:name
- Etkinliği uygulayan sınıfın adı,
Activity
alt sınıfı. Özellik değeri normalde"com.example.project.ExtracurricularActivity"
gibi tam nitelikli bir sınıf adıdır. Bununla birlikte, kısaltma olarak, adın ilk karakteri noktaysa (ör.".ExtracurricularActivity"
)build.gradle
dosyasında belirtilen ad alanının sonuna eklenir.Uygulamanızı yayınladıktan sonra
android:exported="false"
değerini ayarlamadığınız sürece bu adı değiştirmeyin. Varsayılan ayar yoktur. Ad belirtilmelidir. android:noHistory
- Kullanıcı etkinlikten ayrıldığında ve etkinlik artık ekranda görünmediğinde etkinliğin
finish()
yöntemini çağırarak etkinlik yığınından kaldırılıp tamamlanıp tamamlanmadığı. Tamamlandıysa"true"
, tamamlanmadıysa"false"
olur. Varsayılan değer"false"
değeridir."true"
değeri, etkinliğin herhangi bir geçmiş iz bırakmadığı anlamına gelir. Etkinlik, görevin etkinlik yığınında kalmaz, bu nedenle kullanıcı da göreve geri dönemez. Bu durumda, bu etkinlikten bir sonuç için başka bir etkinlik başlatırsanızonActivityResult()
hiçbir zaman çağrılmaz.Bu özellik, API düzeyi 3'te kullanıma sunulmuştur.
android:parentActivityName
- Etkinliğin mantıksal üst öğesinin sınıf adı. Buradaki ad, karşılık gelen
<activity>
öğesininandroid:name
özelliğine verilen sınıf adıyla eşleşmelidir.Sistem, kullanıcı işlem çubuğunda Yukarı düğmesine dokunduğunda hangi etkinliğin başlatılacağını belirlemek için bu özelliği okur. Sistem, bu bilgileri
TaskStackBuilder
ile gerideki etkinlik yığınını sentezlemek için de kullanabilir.API düzeyi 4-16'yı desteklemek için üst etkinliği,
"android.support.PARENT_ACTIVITY"
için bir değer belirten<meta-data>
öğesiyle de bildirebilirsiniz:<activity android:name="com.example.app.ChildActivity" android:label="@string/title_child_activity" android:parentActivityName="com.example.app.MainActivity" > <!-- Parent activity meta-data to support API level 4+ --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.app.MainActivity" /> </activity>
Yukarı gezinmeyi destekleyecek üst etkinliği bildirme hakkında daha fazla bilgi için Gezinmeyi Sağlama bölümünü okuyun.
Bu özellik, API düzeyi 16'da kullanıma sunulmuştur.
android:persistableMode
Bir etkinlik örneğinin, cihaz yeniden başlatmalarında kapsayıcı bir görev içinde nasıl korunacağını tanımlar.
Bir görevin kök etkinliği, bu özelliğin değerini
persistRootOnly
olarak ayarlarsa yalnızca kök etkinliği korunur. Aksi takdirde, görevin arka yığınının daha üst düzeylerinde olan etkinlikler incelenir; bu özelliğin değerinipersistAcrossReboots
olarak ayarlayan tüm etkinlikler korunur.Bu özelliği kullanırsanız değerini aşağıdakilerden birine ayarlamanız gerekir:
Değer Açıklama persistRootOnly
Varsayılan değer. Sistem yeniden başlatıldığında etkinlik görevi korunur ancak yalnızca kök etkinliğinin başlatma amacı kullanılır. Uygulamanızın başlatma amacı, uygulamanızın kök etkinliğini yüklediğinde etkinlik bir
PersistableBundle
nesnesi almaz. Bu nedenle, cihaz yeniden başlatıldığında uygulamanızın kök etkinliğinin durumunu korumak içinonSaveInstanceState()
kullanmayın.Not: Bu özellik değeri, yalnızca uygulamanızın kök etkinliğinde ayarlanmışsa uygulamanızın davranışını etkiler.
persistAcrossReboots
Bu etkinliğin durumu, kendi
persistableMode
özelliğipersistAcrossReboots
olarak ayarlanmış olan arka yığın üzerinde yer alan her bir etkinliğin durumu ile birlikte korunur. Bir etkinlik,persistAcrossReboots
olarak ayarlanmış birpersistableMode
özelliğine sahip değilse veyaIntent.FLAG_ACTIVITY_NEW_DOCUMENT
işareti kullanılarak başlatıldıysa bu etkinlik, arka yığının daha üst katmanlarındaki tüm etkinliklerle birlikte korunmaz.Bir amaç, uygulamanızda
persistableMode
özelliğipersistAcrossReboots
olarak ayarlanmış bir etkinlik yüklediğinde, etkinlikonCreate()
yönteminde birPersistableBundle
nesnesi alır. Dolayısıyla,persistableMode
özelliğipersistAcrossReboots
olarak ayarlandığı sürece, cihaz yeniden başlatıldığında gerçekleşen etkinliğin durumunu korumak içinonSaveInstanceState()
kullanabilirsiniz.Not: Bu özellik değeri, uygulamanızın kök etkinliğinden farklı bir etkinlik üzerinde ayarlanmış olsa bile uygulamanızın davranışını etkiler.
persistNever
Etkinliğin durumu korunmaz.
Not: Bu özellik değeri, yalnızca uygulamanızın kök etkinliğinde ayarlanmışsa uygulamanızın davranışını etkiler.
Bu özellik, API düzeyi 21'de kullanıma sunulmuştur.
android:permission
- Müşterilerin etkinliği başlatmak veya bir amaca yanıt vermek üzere başka bir şekilde elde etmesini sağlamak için alması gereken iznin adı.
startActivity()
veyastartActivityForResult()
çağrılarını yapan bir kişiye belirtilen izin verilmezse amacı etkinliğe iletilmez.Bu özellik ayarlanmazsa
<application>
öğesininpermission
özelliği tarafından ayarlanan izin etkinlik için geçerli olur. Hiçbir özellik ayarlanmazsa etkinlik bir izinle korunmaz.İzinler hakkında daha fazla bilgi için Uygulama manifesti'ne genel bakışın İzinler bölümüne ve Güvenlik ipuçları'na bakın.
android:process
- Etkinliğin çalıştırıldığı sürecin adı. Normalde bir uygulamanın tüm bileşenleri, uygulama için oluşturulan varsayılan bir işlem adında çalışır ve bu özelliği kullanmanız gerekmez. Ancak gerekirse, varsayılan işlem adını bu özellikle geçersiz kılarak uygulama bileşenlerinizi birden fazla işleme yayabilirsiniz.
Bu özelliğe atanan ad iki nokta üst üste (
:
) ile başlıyorsa gerektiğinde uygulamaya özel yeni bir işlem oluşturulur ve etkinlik bu işlemde çalışır.İşlem adı küçük harfle başlıyorsa etkinlik, izni olması koşuluyla o ada sahip global bir işlemde çalışır. Bu, farklı uygulamalardaki bileşenlerin bir işlemi paylaşmasına olanak tanıyarak kaynak kullanımını azaltır.
<application>
öğesininprocess
özelliği, tüm bileşenler için farklı bir varsayılan işlem adı ayarlayabilir. android:relinquishTaskIdentity
- Etkinliğin, görev tanımlayıcılarını görev yığınında üzerindeki bir etkinliğe bırakıp bırakmadığı. Bu özelliğin kök etkinliği
"true"
olarak ayarlanmış bir görev,Intent
tabanını görevdeki bir sonraki etkinliğinkiyle değiştirir.Bir sonraki etkinlikte de bu özellik
"true"
değerine ayarlanmışsa aynı görevde başlattığı her türlü etkinliğeIntent
temel değeri verilir. Bu işlem, bu özelliğin"false"
olarak ayarlandığı bir etkinlik karşılaşılana kadar her etkinlik için devam eder. Varsayılan değer"false"
değeridir.Bu özellik
"true"
olarak ayarlandığında, etkinlikActivityManager.TaskDescription
'ı kullanarak Son aramalar ekranındaki etiketleri, renkleri ve simgeleri değiştirebilir. android:resizeableActivity
-
Uygulamanın çoklu pencere modunu destekleyip desteklemediğini belirtir. Bu özelliği
<activity>
veya<application>
öğesinde ayarlayabilirsiniz.Bu özelliği
"true"
olarak ayarlarsanız kullanıcı, etkinliği bölünmüş ekran ve serbest biçim modlarında başlatabilir. Özelliği"false"
olarak ayarlarsanız uygulama, çoklu pencereli bir ortam için test edilemez veya optimize edilemez. Sistem, uyumluluk modu uygulanmış halde etkinliği çoklu pencere moduna geçirmeye devam edebilir.Bu özelliğin
"false"
olarak ayarlanması, ekranda görünür olan çoklu pencere modundaki (pencere içinde pencere modu veya diğer ekranlar gibi) başka uygulamaların olmayacağını garanti etmez. Bu nedenle, bu işaretin ayarlanması uygulamanızın özel kaynak erişimine sahip olduğu anlamına gelmez.Uygulamanız API düzeyi 24 veya üstünü hedefliyorsa ve bu özellik için bir değer belirtmezseniz özelliğin değeri varsayılan olarak
"true"
olur.Uygulamanız API düzeyi 31 veya üstünü hedefliyorsa bu özellik küçük ve büyük ekranlarda farklı şekilde çalışır:
- Büyük ekranlar (sw >= 600 dp): Tüm uygulamalar çoklu pencere modunu destekler. Bu özellik, uygulamanın çoklu pencere modunu destekleyip desteklemediğini değil, yeniden boyutlandırılıp boyutlandırılamayacağını gösterir.
resizeableActivity="false"
ise uygulama, görüntüleme boyutlarına uyması gerektiğinde uyumluluk moduna alınır. - Küçük ekranlar (sw < 600dp):
resizeableActivity="true"
ve etkinliğin minimum genişliği ve minimum yüksekliği çoklu pencere koşulları kapsamındaysa uygulama, çoklu pencere modunu destekler.resizeableActivity="false"
ise uygulama, etkinlik minimum genişliği ve yüksekliğine bakılmaksızın çoklu pencere modunu desteklemez.
Not: Cihaz üreticileri, API düzeyi 31 davranışını geçersiz kılabilir.
Bu özellik, API düzeyi 24'te eklendi.
Not: Bir görevin kök etkinliği değeri, görevde başlatılan tüm ek etkinliklere uygulanır. Yani bir görevin kök etkinliği yeniden boyutlandırılabilirse sistem, görevdeki diğer tüm etkinlikleri yeniden boyutlandırılabilir olarak değerlendirir. Kök etkinliği yeniden boyutlandırılabilir değilse görevdeki diğer etkinlikler yeniden boyutlandırılabilir değildir.
- Büyük ekranlar (sw >= 600 dp): Tüm uygulamalar çoklu pencere modunu destekler. Bu özellik, uygulamanın çoklu pencere modunu destekleyip desteklemediğini değil, yeniden boyutlandırılıp boyutlandırılamayacağını gösterir.
android:screenOrientation
Etkinliğin cihaz ekranındaki yönü.
Android 7.0 (API düzeyi 24) ve sonraki sürümlerde, etkinlik çoklu pencere modundaysa sistem bu özellikte yapılan çalışma zamanı değişikliklerini yoksayar.
Cihaz üreticileri, Android 12 (API düzeyi 31) ve sonraki sürümlerde cihaz ekranlarını (ör. katlanabilir cihazların tablet boyutlu ekranı gibi) yön spesifikasyonunu göz ardı edecek ve dikey olarak belirtilen uygulamayı yatay ekranlarda yalnızca dik ancak yatay kenarlıklar oluşturacak şekilde yapılandırabilirler. Bu da uygulamanın dikey en boy oranına sahip olmasını sağlar ancak uygulamayı daha iyi kullanılabilirlik için yönlendirir.
Değer, aşağıdaki dizelerden herhangi biri olabilir:
"unspecified"
Varsayılan değer. Yönü sistem seçer. Sistemin kullandığı politika ve bu nedenle, belirli bağlamlarda yapılan seçimler cihazdan cihaza farklılık gösterebilir. "behind"
Etkinlik yığınında hemen altında bulunan etkinlikle aynı yön. "landscape"
Yatay yön (ekranın genişliğinden daha geniştir). "portrait"
Dikey yön (ekranın yüksekliği geniş olduğundan daha uzundur). "reverseLandscape"
Normal yatay görünümün tersi yönde yatay yön. API düzeyi 9'da eklendi. "reversePortrait"
Dikey yön, normal portrenin aksi yönünde olmalıdır. API düzeyi 9'da eklendi. "sensorLandscape"
Yatay yön, ancak cihaz sensörüne bağlı olarak normal veya ters yatay olabilir. Kullanıcı sensöre dayalı dönüşü kilitlemiş olsa bile sensör kullanılır. API düzeyi 9'da eklendi. "sensorPortrait"
Dikey yön, ancak cihaz sensörüne bağlı olarak normal veya ters dikey olabilir. Kullanıcı sensöre dayalı dönüşü kilitlemiş olsa bile sensör kullanılır. Ancak, cihaz yapılandırmasına bağlı olarak, ters döndürmeye izin verilmeyebilir. API düzeyi 9'da eklendi. "userLandscape"
Yatay yön, ancak cihaz sensörüne ve kullanıcının tercihine bağlı olarak normal veya ters yatay olabilir. API düzeyi 18'de eklendi. "userPortrait"
Dikey yön, ancak cihaz sensörüne ve kullanıcının tercihine bağlı olarak normal veya ters dikey olabilir. Ancak, cihazın yapılandırmasına bağlı olarak, baş aşağı döndürmeye izin verilmeyebilir. API düzeyi 18'de eklendi. "sensor"
Yönü, cihazın yön sensörü belirler. Ekranın yönü, kullanıcının cihazı nasıl tuttuğuna bağlıdır. Kullanıcı cihazı döndürdüğünde değişir. Ancak bazı cihazlar varsayılan olarak dört olası yönün hepsine döndürülmez. Dört yönün tümünü kullanmak için "fullSensor"
kullanın. Kullanıcı sensöre dayalı dönüşü kilitlemiş olsa bile sensör kullanılır."fullSensor"
Cihaz yön sensörü, dört yönden herhangi birinin yönünü belirler. Bu, "sensor"
özelliğine benzer. Tek fark, cihazın normalde neyi desteklediğinden bağımsız olarak olası dört ekran yönünden herhangi birine olanak tanır. Örneğin, bazı cihazlar normalde ters dikey veya ters yatay görünümü kullanmaz, ancak bu yönler bu doğrultuda etkinleştirilir. API düzeyi 9'da eklendi."nosensor"
Yön, fiziksel yön sensörüne bakılmadan belirlenir. Sensör yok sayılır. Bu nedenle ekran, kullanıcının cihazı nasıl hareket ettirdiğine bağlı olarak dönmez. "user"
Kullanıcının geçerli tercih ettiği yön. "fullUser"
Kullanıcı sensöre dayalı dönüşü kilitlediyse bu da user
ile aynı şekilde davranır. Aksi takdirdefullSensor
ile aynı şekilde davranır ve olası dört ekran yönünden herhangi birine izin verir. API düzeyi 18'de eklendi."locked"
Yönü, her neyse, geçerli dönüşüne kilitler. API düzeyi 18'de eklendi. Not: Yatay veya dikey değerlerden birini bildirdiğinizde bu, etkinliğin çalışacağı yön için kesin bir gereklilik olarak kabul edilir. Tanımladığınız değer, Google Play gibi hizmetlere göre filtrelemeyi etkinleştirir. Böylece uygulamanız yalnızca işlemlerinizin gerektirdiği yönü destekleyen cihazlar tarafından kullanılabilir. Örneğin,
"landscape"
,"reverseLandscape"
veya"sensorLandscape"
değerlerinden birini belirtirseniz uygulamanız yalnızca yatay yönü destekleyen cihazlarda kullanılabilir.Ayrıca,
<uses-feature>
Öğesi ile uygulamanızın dikey veya yatay yön gerektirdiğini (ör.<uses-feature android:name="android.hardware.screen.portrait"/>
) açıkça belirtin. Bu, Google Play ve onu destekleyen diğer hizmetler tarafından sağlanan bir filtreleme davranışıdır. Bir cihaz yalnızca belirli yönleri desteklediğinde uygulamanızın yüklenip yüklenemeyeceği platformun kendisi tarafından kontrol edilmez.android:showForAllUsers
-
Cihazın geçerli kullanıcısı, etkinliği başlatan kullanıcıdan farklı olduğunda etkinliğin gösterilip gösterilmeyeceği. Bu özelliği
"true"
ya da"false"
gibi sabit bir değere veya boole değeri içeren bir kaynak ya da tema özelliğine ayarlayabilirsiniz.Bu özellik, API düzeyi 23'te eklendi.
android:stateNotNeeded
- Etkinliğin durumu kaydedilmeden sonlandırılıp başarıyla yeniden başlatılıp başlatılamayacağı Önceki durumuna bakılmadan yeniden başlatılabiliyorsa
"true"
ve önceki durumu gerekliyse"false"
. Varsayılan değer"false"
değeridir.Normalde, bir etkinlik kaynak tasarrufu sağlamak için geçici olarak kapatılmadan önce
onSaveInstanceState()
yöntemi çağrılır. Bu yöntemde, etkinliğin mevcut durumu birBundle
nesnesinde depolanır ve daha sonra etkinlik yeniden başlatıldığındaonCreate()
işlevine iletilir. Bu özellik"true"
değerine ayarlanırsaonSaveInstanceState()
çağrılmayabilir ve etkinlik ilk kez başladığındaBundle
yerineonCreate()
null
iletilir."true"
ayarı, etkinliğin saklanmadan yeniden başlatılabileceği anlamına gelir. Örneğin, Ana ekranı görüntüleyen etkinlik, herhangi bir nedenle kilitlendiğinde kaldırılmamasını sağlamak için bu ayarı kullanır. android:supportsPictureInPicture
-
Etkinliğin pencere içinde pencere ekranını destekleyip desteklemediğini belirtir.
android:taskAffinity
- Etkinliğin yakın ilgi alanına sahip olduğu görev. Aynı yakın ilgi alanına sahip etkinlikler, kullanıcı açısından kavramsal olarak aynı göreve, aynı "uygulamaya" aittir. Bir görevin benzeşimi, kök etkinliğinin yakınlığıyla belirlenir.
Yakın ilgi alanı iki şeyi belirler: etkinliğin yeniden üst öğesinin eklendiği görev (
allowTaskReparenting
özelliğine bakın) veFLAG_ACTIVITY_NEW_TASK
işaretiyle başlatıldığında etkinliği barındıran görev.Varsayılan olarak, bir uygulamadaki tüm etkinlikler aynı yakın ilgi alanına sahiptir. Bunları farklı şekilde gruplandırmak için bu özelliği ayarlayabilir, hatta farklı uygulamalarda tanımlanan etkinlikleri aynı görev içine yerleştirebilirsiniz. Etkinliğin herhangi bir göreve yakınlığı olmadığını belirtmek için bunu boş bir dizeye ayarlayın.
Bu özellik ayarlanmazsa etkinlik, uygulama için ayarlanan yakın ilgi alanını devralır.
<application>
öğesinintaskAffinity
özelliğine bakın. Bir uygulama için varsayılan yakın ilgi alanının adı,build.gradle
dosyasında ayarlanan ad alanıdır. android:theme
- Etkinliğin genel temasını tanımlayan bir stil kaynağı referansı.
Bu işlem, etkinliğin bağlamını bu
theme
kullanılacak şekilde otomatik olarak ayarlar ve ayrıca etkinliğin gerçekte göründüğü şekliyle daha iyi eşleşmesi için etkinlik başlamadan önce animasyonların "başlatılmasına" neden olabilir.Bu özellik ayarlanmazsa etkinlik,
<application>
öğesinintheme
özelliğinden bir bütün olarak uygulama için belirlenen tema kümesini devralır. Bu özellik de ayarlanmazsa varsayılan sistem teması kullanılır. Daha fazla bilgi için Stiller ve temalar konusuna bakın. android:uiOptions
- Bir etkinliğin kullanıcı arayüzü için ek seçenekler. Aşağıdaki değerlerden biri olmalıdır.
Değer Açıklama "none"
Ekstra kullanıcı arayüzü seçeneği yoktur. Bu, varsayılan ayardır. "splitActionBarWhenNarrow"
İşlem öğelerini uygulama çubuğunda (işlem çubuğu olarak da bilinir) görüntülemek için ekranın alt kısmına bir çubuk ekler. Bu çubuk, telefondaki dikey modda olduğu gibi yatay alan kısıtlandığında yapılır. Uygulama çubuğu, ekranın üst kısmındaki uygulama çubuğunda görünen az sayıda işlem öğesi yerine, işlem öğeleri için üst gezinme bölümüne ve alt çubuğa bölünmüştür. Bu, yalnızca işlem öğeleri için değil, aynı zamanda üstteki gezinme ve başlık öğeleri için de makul bir alan bırakılacağı anlamına gelir. Menü öğeleri iki çubuğa bölünmüyor. Her zaman bir arada görünürler. Uygulama çubuğu hakkında daha fazla bilgi için Uygulama çubuğunu ekleme konusuna bakın.
Bu özellik, API düzeyi 14'te eklendi.
android:windowSoftInputMode
- Etkinlik ana penceresinin, dokunmatik klavyeyi içeren pencereyle nasıl etkileşimde bulunduğu. Bu özelliğin ayarı iki şeyi etkiler:
- Etkinlik, kullanıcının dikkatinin odağı haline geldiğinde sanal klavyenin gizli veya görünür olup olmadığı.
- Pencerenin bir kısmı dokunmatik klavye tarafından kaplandığında geçerli odağın görünür olması için, etkinlik ana penceresinin ekran boyutunu kullanarak sanal klavyeye veya içindekilere yer açıp açmayacağı.
Ayar, aşağıdaki tabloda listelenen değerlerden biri veya bir
"state..."
değeri ile bir"adjust..."
değerinin kombinasyonu olmalıdır. Her iki grupta da birden çok"state..."
değeri ayarlamak gibi birden çok değerin ayarlanması tanımlanmamış sonuçlar doğurur. Bağımsız değerler, aşağıdaki örnekte gösterildiği gibi bir dikey çubukla (|
) ayrılır:<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
Burada ayarlanan değerler (
"stateUnspecified"
ve"adjustUnspecified"
dışındaki değerler) temada ayarlanan değerleri geçersiz kılar.Değer Açıklama "stateUnspecified"
Sanal klavyenin gizli veya görünür olup olmadığı belirtilmemiştir. Sistem uygun bir durum seçer veya temadaki ayarı baz alır. Bu, sanal klavyenin çalışma biçimi için varsayılan ayardır.
"stateUnchanged"
Etkinlik öne çıktığında sanal klavye en son olduğu durumda, görünür veya gizlenmiş olarak tutulur. "stateHidden"
Sanal klavye, kullanıcı etkinliği seçtiğinde (yani kullanıcı başka bir etkinlikten ayrılırken geri gitmek yerine, olumlu bir şekilde etkinliğe doğru ilerlediğinde) gizlenir. "stateAlwaysHidden"
Sanal klavye, etkinliğin ana penceresinde giriş odağı olduğunda her zaman gizlidir. "stateVisible"
Sanal klavye, kullanıcı etkinliği seçtiğinde (yani kullanıcı başka bir etkinlikten ayrılırken geri gitmek yerine, olumlu bir şekilde etkinliğe doğru ilerlediğinde) görünür hale gelir. "stateAlwaysVisible"
Pencere giriş odağını aldığında sanal klavye görünür hale gelir. "adjustUnspecified"
Etkinlik ana penceresinin, yazılım klavyesi için yer açmak üzere mi, yoksa geçerli odağı ekranda görünür yapmak için pencere kaydırma içeriğinin mi yeniden boyutlandırılacağı belirlenemez. Sistem, pencere içeriğinde içeriğin kaydırılabilen düzen görünümleri olup olmamasına göre bu modlardan birini otomatik olarak seçer. Böyle bir görünüm varsa, kaydırma işleminin pencere içeriğinin daha küçük bir alan içinde görünmesini sağlayabileceği varsayılarak pencere yeniden boyutlandırılır. Bu, ana pencerenin davranışı için varsayılan ayardır.
"adjustResize"
Etkinliğin ana penceresi, ekranda sanal klavyeye yer açmak için her zaman yeniden boyutlandırılır. "adjustPan"
Etkinliğin ana penceresi, sanal klavyeye yer açacak şekilde yeniden boyutlandırılmaz. Bunun yerine, pencerenin içeriği otomatik olarak kaydırılır. Böylece, geçerli odak hiçbir zaman klavye tarafından engellenmez ve kullanıcılar her zaman yazdıklarını görebilir. Bu işlem, genellikle yeniden boyutlandırmadan daha az tercih edilir, çünkü pencerenin gizlenmiş bölümlerine ulaşmak ve etkileşimde bulunmak için kullanıcının yazılım klavyesini kapatması gerekebilir. Bu özellik, API düzeyi 3'te kullanıma sunulmuştur.
- şurada kullanıma sunuldu:
- API düzeyi 3'e eklenen
noHistory
vewindowSoftInputMode
dışındaki tüm özellikler için API düzeyi 1. - ayrıca bakın:
<application>
<activity-alias>
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2024-02-02 UTC.
[]
[]