Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.
sintaksis:
<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: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>
terdapat dalam:
<application>
dapat berisi:
<intent-filter>
<meta-data>
<layout>
deskripsi:
Mendeklarasikan suatu aktivitas (subclass Activity) yang mengimplementasikan bagian dari antarmuka pengguna visual aplikasi. Semua aktivitas harus diwakili oleh elemen <activity> dalam file manifes. Apa pun yang tidak dideklarasikan tidak akan terlihat oleh sistem dan tidak akan dijalankan.
atribut:
android:allowEmbedded
Menunjukkan bahwa aktivitas bisa diluncurkan sebagai turunan yang disematkan dari aktivitas lain. Khususnya dalam kasus saat turunan berada dalam sebuah kontainer seperti Tampilan yang dimiliki oleh aktivitas lain. Misalnya, aktivitas yang digunakan untuk notifikasi khusus Wear harus mendeklarasikannya sehingga Wear bisa menampilkan aktivitas dalam aliran konteks, yang terletak dalam proses lain.

Nilai default atribut ini adalah false.

android:allowTaskReparenting
Apakah aktivitas berpindah dari tugas yang memulainya ke tugas yang memiliki afinitas adalah saat tugas tersebut selanjutnya dipindah ke latar depan — "true" jika aktivitas dapat dipindah, dan "false" jika harus tetap berada dengan tugas yang memulainya.

Jika atribut ini tidak ditetapkan, nilai yang ditetapkan oleh atribut allowTaskReparenting yang sesuai dari elemen <application> akan diterapkan untuk aktivitas. Nilai defaultnya adalah "false".

Biasanya saat suatu aktivitas dimulai, aktivitas tersebut terhubung dengan tugas aktivitas yang memulainya dan akan tetap di sana selama seumur hidup. Anda dapat menggunakan atribut ini untuk memaksanya agar di-reparent ke tugas yang memiliki afinitas saat tugas saat ini tidak lagi ditampilkan. Biasanya, atribut tersebut digunakan untuk membuat aktivitas aplikasi berpindah ke tugas utama yang berkaitan dengan aplikasi tersebut.

Misalnya, jika pesan email berisi link ke halaman web, mengklik link akan memunculkan sebuah aktivitas yang bisa menampilkan halaman. Aktivitas tersebut didefinisikan oleh aplikasi Browser, namun diluncurkan sebagai bagian dari tugas email. Jika di-reparent ke tugas browser, aktivitas akan ditampilkan ketika browser berikutnya muncul di latar depan, dan akan menghilang ketika tugas email muncul lagi ke depan.

Afinitas dari suatu aktivitas didefinisikan oleh atribut taskAffinity. Afinitas tugas ditentukan dengan membaca afinitas aktivitas root-nya. Karena itu, menurut definisi, aktivitas root selalu berada dalam tugas dengan afinitas yang sama. Karena aktivitas dengan mode peluncuran "singleTask" atau "singleInstance" hanya dapat berada di root tugas, reparent dibatasi pada mode "standard" dan "singleTop". (Lihat juga atribut launchMode.)

android:alwaysRetainTaskState
Apakah status dari tugas tempat aktivitas berada akan selalu dipertahankan oleh sistem — "true" jika ya, dan "false" jika sistem diperbolehkan untuk menetapkan ulang tugas ke status awalnya dalam situasi tertentu. Nilai defaultnya adalah "false". Atribut ini hanya berguna untuk aktivitas root suatu tugas; akan diabaikan untuk semua aktivitas lainnya.

Biasanya, sistem menghapus tugas (menghapus semua aktivitas dari tumpukan di atas aktivitas root) dalam situasi tertentu ketika pengguna memilih kembali tugas tersebut dari layar beranda. Biasanya, ini dilakukan jika pengguna tidak mengunjungi tugas untuk selang waktu tertentu, misalnya 30 menit.

Namun, jika atribut ini bernilai "true", pengguna akan selalu kembali ke tugas dalam status terakhirnya, dengan cara apa pun. Ini berguna, misalnya, dalam aplikasi seperti browser web ketika ada banyak keadaan (seperti beberapa tab terbuka) dan pengguna masih ingin memakainya.

android:autoRemoveFromRecents
Apakah tugas yang diluncurkan oleh aktivitas dengan atribut ini tetap berada di layar ringkasan sampai aktivitas terakhir dalam tugas diselesaikan. Jika true, tugasnya secara otomatis akan dihapus dari layar ringkasan. Menggantikan penggunaan FLAG_ACTIVITY_RETAIN_IN_RECENTS oleh pemanggil. Harus berupa nilai boolean, "true" atau "false".
android:banner
Resource drawable menyediakan banner grafis yang diperluas untuk item terkait. Gunakan dengan tag <activity> untuk menyediakan banner default bagi aktivitas tertentu, atau dengan tag <application> untuk menyediakan banner bagi semua aktivitas aplikasi.

Sistem menggunakan banner ini untuk merepresentasikan aplikasi di layar utama Android TV. Karena banner hanya ditampilkan di layar utama, banner hanya boleh ditentukan oleh aplikasi dengan aktivitas yang menangani intent CATEGORY_LEANBACK_LAUNCHER.

Atribut ini harus ditetapkan sebagai referensi untuk resource drawable yang berisi image (misalnya "@drawable/banner"). Tidak ada banner default.

Lihat Menyediakan banner layar utama pada Mulai Menggunakan Aplikasi TV untuk mengetahui informasi selengkapnya.

android:clearTaskOnLaunch
Apakah semua aktivitas akan dihapus dari tugas, kecuali untuk aktivitas root, ketika diluncurkan kembali dari layar beranda — "true" jika tugas selalu diturunkan hingga ke aktivitas root, dan "false" jika tidak. Nilai defaultnya adalah "false". Atribut ini hanya berguna untuk aktivitas yang memulai tugas baru (aktivitas root); atribut ini diabaikan untuk semua aktivitas lain dalam tugas.

Jika bernilai "true", setiap kali pengguna memulai tugas lagi, mereka akan dibawa ke aktivitas root terlepas dari apa yang terakhir dilakukan dalam tugas dan apakah menggunakan tombol Kembali atau Beranda untuk meninggalkannya. Jika bernilai "false", tugas bisa dihapus dari aktivitas dalam situasi tertentu (lihat atribut alwaysRetainTaskState), meskipun tidak selalu.

Diibaratkankan, misalnya, seseorang meluncurkan aktivitas P dari layar utama, dan dari sana menuju aktivitas Q. Selanjutnya, pengguna menekan Beranda, lalu kembali ke aktivitas P. Biasanya, pengguna akan melihat aktivitas Q, karena hal itulah yang terakhir mereka lakukan dalam tugas P. Namun, jika P menetapkan tanda ini ke "true", semua aktivitas di atasnya (dalam hal ini Q) akan dihapus saat pengguna meluncurkan aktivitas P dari layar utama. Jadi, pengguna hanya akan melihat P ketika kembali ke tugas.

Jika atribut ini dan allowTaskReparenting adalah "true", semua aktivitas yang dapat di-reparent dipindahkan ke tugas yang memiliki kesamaan minat dengannya; aktivitas lainnya akan dihapus, seperti yang dijelaskan di atas.

Atribut ini diabaikan jika FLAG_ACTIVITY_RESET_TASK_IF_NEEDED tidak ditetapkan.

android:colorMode

Meminta aktivitas agar ditampilkan dalam mode gamut warna yang luas di perangkat yang kompatibel. Dalam mode gamut warna yang luas, jendela bisa merender di luar gamut SRGB untuk menampilkan warna yang lebih cerah. Jika perangkat tidak mendukung rendering gamut warna yang luas, atribut ini tidak akan memiliki pengaruh apa pun. Untuk informasi selengkapnya mengenai rendering dalam mode warna yang luas, lihat Meningkatkan Grafik dengan Konten Warna yang Luas.

android:configChanges
Mencantumkan perubahan konfigurasi bahwa aktivitas tersebut akan menangani dirinya sendiri. Ketika perubahan konfigurasi terjadi pada runtime, aktivitas dimatikan dan dimulai ulang secara default, tetapi mendeklarasikan konfigurasi dengan atribut ini akan mencegah aktivitas dimulai ulang. Sebaliknya, aktivitas tetap berjalan dan metode onConfigurationChanged() dipanggil.

Catatan: Gunakan atribut ini hanya dalam kasus khusus untuk meningkatkan performa dan responsivitas aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menangani perubahan konfigurasi.

Salah satu atau semua string berikut adalah nilai yang valid untuk atribut ini. Beberapa nilai dipisahkan dengan '|' — misalnya, "locale|navigation|orientation".

Nilai Deskripsi
"density" Kepadatan tampilan telah berubah — pengguna mungkin telah menentukan skala tampilan yang berbeda, atau tampilan yang berbeda mungkin aktif saat ini.

Ditambahkan di API level 24

"fontScale" Faktor penskalaan font telah berubah — pengguna telah memilih ukuran font global yang baru.
"keyboard" Tipe keyboard telah berubah — misalnya, pengguna telah mencolokkan keyboard eksternal.
"keyboardHidden" Aksesibilitas keyboard telah berubah — misalnya, pengguna menggunakan keyboard perangkat keras.
"layoutDirection" Arah layout telah berubah — Misalnya, berubah dari kiri-ke-kanan (LTR) menjadi kanan-ke-kiri (RTL).

Ditambahkan di API level 17

"locale" Lokalitas telah berubah — pengguna telah memilih bahasa teks baru yang harus ditampilkan.
"mcc" Kode negara seluler (MCC) IMSI telah berubah — SIM telah terdeteksi dan memperbarui MCC.
"mnc" Kode jaringan seluler (MNC) IMSI telah berubah — SIM telah terdeteksi dan memperbarui MNC.
"navigation" Tipe navigasi (trackball/dpad) telah berubah. (Ini biasanya jarang terjadi.)
"orientation"

Orientasi layar telah berubah — pengguna telah memutar perangkat.

Catatan: Jika aplikasi Anda menargetkan Android 3.2 (API level 13) atau yang lebih tinggi, deklarasikan juga konfigurasi "screenLayout" dan "screenSize" karena tata letak layar dan ukuran layar dapat berubah saat perangkat beralih antara orientasi potret dan lanskap.

"screenLayout" Layout layar telah berubah — tampilan yang berbeda mungkin aktif saat ini.
"screenSize" Ukuran layar yang tersedia saat ini telah berubah.

Ini mewakili perubahan ukuran yang tersedia saat ini, relatif terhadap aspek rasio yang sekarang, sehingga akan berubah ketika pengguna beralih antara lanskap dan potret.

Ditambahkan di API level 13

"smallestScreenSize" Ukuran fisik layar telah berubah.

Ini mewakili perubahan ukuran tanpa melihat orientasi, sehingga hanya akan berubah ketika ukuran layar fisik yang sebenarnya telah berubah, seperti beralih ke layar eksternal. Perubahan untuk konfigurasi ini sesuai dengan perubahan pada konfigurasi smallestWidth.

Ditambahkan di API level 13

"touchscreen" Layar sentuh telah berubah. (Ini biasanya jarang terjadi.)
"uiMode" Mode antarmuka pengguna telah berubah — pengguna telah menempatkan perangkat ke meja atau dok mobil, atau mode malam telah berubah. Untuk informasi selengkapnya mengenai mode UI yang berbeda, lihat UiModeManager.

Ditambahkan di API level 8.

Semua perubahan konfigurasi ini bisa berdampak pada nilai sumber daya yang terlihat oleh aplikasi. Oleh karena itu, ketika dipanggil, onConfigurationChanged() biasanya diperlukan untuk mengambil kembali semua sumber daya (termasuk layout tampilan, sumber daya dapat digambar, dan sebagainya) agar bisa menangani perubahan dengan benar.

Catatan: Untuk menangani semua Multi-Aplikasi yang terkait perubahan konfigurasi, gunakan "screenLayout" dan "smallestScreenSize". Multi-Aplikasi didukung dalam Android 7.0 (API level 24) atau yang lebih tinggi.

android:directBootAware

Apakah aktivitas direct-boot aware atau tidak; artinya, bisa tidaknya aktivitas tersebut berjalan sebelum pengguna membuka perangkat.

Catatan: Selama Direct Boot, suatu aktivitas dalam aplikasi Anda hanya bisa mengakses data yang disimpan dalam penyimpanan yang dilindungi perangkat.

Nilai default-nya adalah "false".

android:documentLaunchMode
Menetapkan bagaimana instance baru dari sebuah aktivitas harus ditambahkan ke tugas setiap kali diluncurkan. Atribut ini mengizinkan pengguna memiliki beberapa dokumen dari aplikasi yang sama tampil dalam layar ringkasan.

Atribut tersebut memiliki empat nilai yang menghasilkan efek berikut saat pengguna membuka dokumen dengan aplikasi:

Nilai Deskripsi
"intoExisting" Sistem mencari tugas yang ComponentName intent dasarnya dan URI data cocok dengan intent peluncuran. Jika sistem menemukan tugas seperti itu, sistem akan menghapus tugas, dan memulai ulang dengan aktivitas root yang menerima panggilan ke onNewIntent(android.content.Intent). Jika sistem tidak menemukan tugas seperti itu, sistem membuat tugas baru.
"always" Aktivitas ini membuat tugas baru untuk dokumen, meskipun dokumen sudah dibuka. Ini sama dengan menetapkan tanda FLAG_ACTIVITY_NEW_DOCUMENT dan FLAG_ACTIVITY_MULTIPLE_TASK.
"none" Aktivitas ini tidak membuat tugas baru untuk aktivitas. Ini adalah nilai default, yang membuat tugas baru hanya jika FLAG_ACTIVITY_NEW_TASK telah ditetapkan. Layar ringkasan memperlakukan aktivitas seperti itu secara default: satu tugas ditampilkan untuk aplikasi, yang dilanjutkan dari aktivitas apa pun yang terakhir dipanggil pengguna.
"never" Aktivitas ini tidak diluncurkan ke dalam dokumen baru meskipun Intent berisi FLAG_ACTIVITY_NEW_DOCUMENT. Menetapkan nilai ini akan menggantikan perilaku ftanda FLAG_ACTIVITY_NEW_DOCUMENT dan FLAG_ACTIVITY_MULTIPLE_TASK, jika salah satunya ditetapkan di aktivitas, dan layar ringkasan menampilkan satu tugas untuk aplikasi, yang melanjutkan dari aktivitas apa pun yang terakhir dipanggil pengguna.

Catatan: Untuk nilai selain "none" dan "never", aktivitas harus ditentukan dengan launchMode="standard". Jika atribut ini tidak ditentukan, documentLaunchMode="none" akan digunakan.

android:enabled
Apakah aktivitas dibuat instance-nya oleh sistem — "true" jika ya, dan "false" jika tidak. Nilai defaultnya adalah "true".

Elemen <application> memiliki atribut enabled-nya sendiri yang berlaku untuk semua komponen aplikasi, termasuk aktivitas. Atribut <application> dan <activity> harus berupa "true" (karena keduanya adalah setelan default) agar sistem dapat membuat instance aktivitas. Jika salah satunya adalah "false", instance-nya tidak dapat dibuat.

android:excludeFromRecents
Apakah tugas yang diawali aktivitas ini harus dikeluarkan dari daftar aplikasi yang baru saja digunakan, layar ringkasan. Artinya, ketika aktivitas ini adalah aktivitas root dari tugas baru, atribut ini menentukan apakah tugas tersebut sebaiknya tidak ditampilkan dalam daftar aplikasi terbaru. Tetapkan "true" jika tugas harus dikecualikan dari daftar; tetapkan "false" jika harus disertakan. Nilai defaultnya adalah "false".

android:exported
Elemen ini menetapkan apakah aktivitas dapat diluncurkan oleh komponen aplikasi lain:

  • Jika "true", aktivitas dapat diakses oleh aplikasi apa pun, dan dapat diluncurkan oleh nama class persisnya.
  • Jika "false", aktivitas hanya dapat diluncurkan oleh komponen aplikasi yang sama, aplikasi dengan ID pengguna yang sama, atau komponen sistem dengan hak istimewa. Ini adalah nilai default saat tidak ada filter intent.

Jika suatu aktivitas di aplikasi Anda menyertakan filter intent, tetapkan elemen ini ke "true" agar aplikasi lain dapat memulainya. Misalnya, jika aktivitas tersebut adalah aktivitas utama aplikasi dan menyertakan category "android.intent.category.LAUNCHER".

Jika elemen ini disetel ke "false" dan aplikasi mencoba memulai aktivitas, sistem akan menampilkan ActivityNotFoundException.

Atribut ini bukan satu-satunya cara untuk membatasi eksposur aktivitas untuk aplikasi lain. Izin juga dapat digunakan untuk membatasi entitas eksternal yang dapat memanggil aktivitas (lihat atribut permission).

android:finishOnTaskLaunch
Apakah instance aktivitas yang ada harus dimatikan atau tidak (selesai), kecuali untuk aktivitas root, setiap kali pengguna kembali menjalankan tugasnya (memilih tugas di layar utama) — "true" jika ya, dan "false" jika tidak. Nilai defaultnya adalah "false".

Jika atribut ini dan allowTaskReparenting adalah "true", atribut ini akan mengalahkan atribut yang lain. Afinitas aktivitas diabaikan. Aktivitas tersebut tidak di-reparent, tapi dihancurkan.

Atribut ini diabaikan jika FLAG_ACTIVITY_RESET_TASK_IF_NEEDED tidak ditetapkan.

android:hardwareAccelerated
Apakah rendering yang dipercepat hardware harus diaktifkan atau tidak untuk Aktivitas ini — "true" jika harus diaktifkan, dan "false" jika tidak. Nilai defaultnya adalah "false".

Mulai dari Android 3.0, renderer OpenGL yang diakselerasi perangkat keras tersedia untuk aplikasi, untuk meningkatkan performa bagi banyak operasi grafis 2D umum. Jika perender diakselerasi hardware diaktifkan, sebagian besar operasi di Canvas, Paint, Xfermode, ColorFilter, Shader, dan Camera akan dipercepat. Menghasilkan animasi yang lebih halus, scroll yang lebih mulus, dan peningkatan responsivitas secara keseluruhan, bahkan untuk aplikasi yang tidak menggunakan library OpenGL framework secara eksplisit. Karena perlu resource yang lebih tinggi untuk mengaktifkan akselerasi hardware, aplikasi Anda akan mengonsumsi lebih banyak RAM.

Ingat bahwa tidak semua operasi 2D OpenGL dipercepat. Jika mengaktifkan perender yang diakselerasi hardware, uji aplikasi Anda untuk memastikan aplikasi dapat memanfaatkan perender tanpa error.

android:icon
Ikon yang mewakili aktivitas. Ikon ditampilkan ke pengguna jika perwakilan dari aktivitas diperlukan pada-layar. Misalnya, ikon untuk aktivitas yang memulai tugas akan ditampilkan di jendela peluncur. Ikon sering kali disertai dengan label (lihat atribut android:label).

Atribut ini harus ditetapkan sebagai referensi ke resource drawable yang berisi definisi gambar. Jika tidak, ikon yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan sebagai gantinya (lihat atribut icon milik elemen <application> ).

Ikon aktivitas — baik yang ditetapkan di sini atau oleh elemen <application> — juga merupakan ikon default untuk semua filter intent aktivitas (lihat elemen <intent-filter> atribut icon).

android:immersive
Menetapkan pengaturan mode imersif untuk aktivitas saat ini. Jika atribut android:immersive ditetapkan menjadi true dalam entri manifes aplikasi untuk aktivitas ini, anggota ActivityInfo.flags selalu memiliki FLAG_IMMERSIVE set bit-nya, meskipun mode imersif diubah saat waktu proses dengan menggunakan metode setImmersive().
android:label
Label dapat dibaca oleh pengguna untuk aktivitas tersebut. Label ditampilkan pada layar jika aktivitas harus ditunjukkan ke pengguna. Label tersebut sering kali ditampilkan bersama dengan ikon aktivitas.

Jika atribut ini tidak ditetapkan, label yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan (lihat atribut label elemen <application>).

Label aktivitas — baik yang ditetapkan di sini atau oleh elemen <application> — juga merupakan label default untuk semua filter intent aktivitas (lihat elemen <intent-filter> atribut label).

Label harus ditetapkan sebagai referensi ke resource string, sehingga dapat dilokalkan seperti string lain pada antarmuka pengguna. Namun, untuk memudahkan Anda mengembangkan aplikasi, label ini juga dapat ditetapkan sebagai string mentah.

android:launchMode
Petunjuk cara peluncuran aktivitas. Ada lima mode yang bekerja sama dengan flag aktivitas (konstanta FLAG_ACTIVITY_*) di objek Intent untuk menentukan apa yang harus terjadi saat aktivitas dipanggil untuk menangani intent. Mode tersebut adalah:

"standard"
"singleTop"
"singleTask"
"singleInstance"
"singleInstancePerTask"

Mode default-nya adalah "standard".

Seperti yang ditunjukkan pada tabel di bawah, mode tersebut terdiri dari dua grup utama, dengan aktivitas "standard" dan "singleTop" di satu sisi, serta aktivitas "singleTask", "singleInstance", dan "singleInstancePerTask" di sisi lainnya. Suatu aktivitas dengan mode peluncuran "standard" atau "singleTop" dapat dibuat instance-nya beberapa kali. Instance bisa menjadi milik setiap tugas dan bisa ditempatkan di mana saja dalam tugas aktivitas. Instance biasanya diluncurkan ke tugas yang memanggil startActivity() (kecuali jika objek Intent berisi instruksi FLAG_ACTIVITY_NEW_TASK , dengan tugas yang berbeda dipilih — lihat atribut taskAffinity).

Sebaliknya, aktivitas "singleTask", "singleInstance", dan "singleInstancePerTask" memiliki perilaku yang berbeda. "singleInstancePerTask" selalu berada di root tugas aktivitas. Selain itu, perangkat hanya dapat menyimpan satu instance aktivitas "singleInstance" pada satu waktu, sementara aktivitas "singleInstancePerTask" dapat dibuat instance-nya beberapa kali dalam tugas yang berbeda saat FLAG_ACTIVITY_MULTIPLE_TASK atau FLAG_ACTIVITY_NEW_DOCUMENT telah disetel. Aktivitas dengan mode peluncuran "singleTask" menggabungkan perilaku "singleInstance" dan "singleInstancePerTask": aktivitas dapat dibuat instance-nya beberapa kali dan dapat ditempatkan di mana saja dalam tugas taskAffinity yang sama. Sementara itu, perangkat hanya dapat menyimpan satu tugas untuk menemukan aktivitas “singleTask" di root tugas aktivitas.

Mode "standard" dan "singleTop" berbeda satu sama lain hanya dalam satu hal: Setiap kali ada intent baru untuk aktivitas "standard", instance baru dari class akan dibuat untuk merespons intent tersebut. Setiap instance menangani satu intent. Demikian pula, instance baru dari aktivitas "singleTop" juga dapat dibuat untuk menangani intent baru. Namun, jika tugas target telah memiliki instance yang ada dari aktivitas di bagian atas stack, instance tersebut akan menerima intent baru (di panggilan onNewIntent()); instance baru tidak dibuat. Dalam situasi yang lain — misalnya, jika instance dari aktivitas "singleTop" berada dalam tugas target, tetapi tidak di bagian atas tumpukan, atau jika berada di bagian atas tumpukan, namun bukan di target tugas — instance baru akan dibuat dan mendorong tumpukan.

Demikian pula, jika Anda menavigasi ke ataske aktivitas di tumpukan saat ini, perilaku ditentukan oleh mode peluncuran aktivitas induk. Jika aktivitas induk memiliki mode peluncuran singleTop (atau intent up berisi FLAG_ACTIVITY_CLEAR_TOP), induk dibawa ke puncak tumpukan, dan status tidak berubah. Intent navigasi diterima oleh metode onNewIntent() aktivitas induk. Jika aktivitas induk memiliki mode peluncuran standard (dan intent up tidak berisi FLAG_ACTIVITY_CLEAR_TOP), aktivitas saat ini dan induknya akan dikeluarkan dari stack, dan instance baru dari aktivitas induk akan dibuat untuk menerima intent navigasi.

Mode "singleInstance" juga berbeda dari "singleTask" dan "singleInstancePerTask" hanya dalam satu hal: aktivitas dengan mode peluncuran "singleTask" atau "singleInstancePerTask" memungkinkan aktivitas lainnya (aktivitas "standard" dan "singleTop") menjadi bagian dari tugasnya. Di sisi lain, aktivitas "singleInstance" tidak mengizinkan aktivitas lainnya menjadi bagian dari tugasnya; aktivitas ini harus menjadi satu-satunya aktivitas dalam tugas. Jika aktivitas ini memulai aktivitas lain, aktivitas tersebut akan ditetapkan ke tugas yang berbeda — seolah-olah FLAG_ACTIVITY_NEW_TASK berada dalam intent.

Kasus Penggunaan Mode Peluncuran Beberapa Instance? Komentar
Peluncuran normal untuk sebagian besar aktivitas "standard" Ya Default. Sistem selalu membuat instance baru dari aktivitas dalam tugas target dan mengarahkan intent ke instance tersebut.
"singleTop" Kondisional Jika sebuah instance aktivitas sudah ada di bagian atas tugas target, sistem akan mengarahkan intent ke instance tersebut melalui panggilan ke metode onNewIntent(), bukannya membuat instance aktivitas yang baru.
Peluncuran khusus
(tidak direkomendasikan untuk penggunaan umum)
"singleTask" Kondisional Sistem membuat aktivitas di root tugas baru atau menempatkan aktivitas pada tugas yang ada dengan afinitas yang sama. Jika instance aktivitas sudah ada dan berada di root tugas, sistem akan merutekan intent ke instance yang ada melalui panggilan ke metode onNewIntent(), bukan membuat instance baru.
"singleInstance" Tidak Sama seperti "singleTask", kecuali jika sistem tidak meluncurkan aktivitas lainnya ke tugas yang memiliki instance tersebut. Aktivitas akan selalu tunggal dan merupakan satu-satunya anggota tugasnya.
"singleInstancePerTask" Kondisional Aktivitas hanya dapat berjalan sebagai aktivitas root tugas, aktivitas pertama yang membuat tugas. Oleh karena itu, hanya akan ada satu instance dari aktivitas ini dalam tugas; tetapi aktivitas dapat dibuat instance-nya beberapa kali dalam tugas yang berbeda.

Seperti yang ditunjukkan dalam tabel di atas, standard adalah mode default dan sesuai untuk sebagian besar jenis aktivitas. SingleTop juga merupakan mode peluncuran yang umum dan berguna untuk berbagai jenis aktivitas. Mode lainnya, yaitu singleTask, singleInstance, dan singleInstancePerTask, tidak cocok untuk sebagian besar aplikasi, karena menghasilkan model interaksi yang mungkin asing bagi pengguna dan sangat berbeda dari kebanyakan aplikasi lain.

Terlepas dari mode peluncuran yang Anda pilih, pastikan untuk menguji kegunaan aktivitas selama peluncuran dan ketika menavigasi kembali dari aktivitas dan tugas lain menggunakan tombol Kembali.

Untuk informasi selengkapnya tentang mode peluncuran dan interaksinya dengan tanda Intent, lihat dokumen Tugas dan Data Sebelumnya .

android:lockTaskMode
Menentukan bagaimana sistem menghadirkan aktivitas ini ketika perangkat sedang berjalan dalam mode kunci tugas.

Android dapat menjalankan tugas secara imersif, seperti kios yang disebut mode kunci tugas. Saat sistem berjalan dalam mode kunci tugas, pengguna perangkat biasanya tidak dapat melihat notifikasi, mengakses aplikasi yang tidak disetujui, atau kembali ke layar beranda (kecuali aplikasi Home yang disetujui). Hanya aplikasi yang sudah disetujui oleh pengendali kebijakan perangkat (DPC) yang dapat berjalan saat sistem berada dalam mode kunci tugas. Namun, sistem dan aplikasi dengan hak istimewa dapat berjalan dalam mode mengunci tugas tanpa memerlukan izin

Nilainya bisa berupa salah satu string R.attr.lockTaskMode berikut:

Nilai Deskripsi
"normal" Nilai default. Nilai ini merupakan default. Tugas tidak diluncurkan ke dalam mode mengunci tugas namun bisa ditempatkan di sana dengan memanggil startLockTask().
"never"

Tugas tidak diluncurkan ke dalam mode mengunci tugas, dan pengguna perangkat tidak dapat memasang pin tugas ini dari layar ringkasan.

Catatan: Mode ini hanya tersedia untuk sistem dan aplikasi dengan hak istimewa. Aplikasi yang tidak memiliki hak istimewa dengan nilai ini diperlakukan sebagai normal.

"if_whitelisted" Jika DPC mengizinkan paket ini menggunakan DevicePolicyManager.setLockTaskPackages(), mode ini identik dengan always, kecuali jika aktivitas harus memanggil stopLockTask() sebelum bisa menyelesaikannya jika merupakan tugas yang terakhir dikunci. Jika DPC tidak mengizinkan paket ini, mode ini identik dengan normal.
"always"

Tugas yang di-root pada aktivitas ini selalu meluncurkan ke dalam mode mengunci tugas. Jika sistem sudah berada dalam mode mengunci tugas saat tugas ini diluncurkan, tugas baru diluncurkan di atas tugas saat ini. Tugas yang diluncurkan dalam mode ini dapat keluar dari mode mengunci tugas dengan memanggil finish().

Catatan: Mode ini hanya tersedia untuk sistem dan aplikasi dengan hak istimewa. Aplikasi yang tidak memiliki hak istimewa dengan nilai ini diperlakukan sebagai normal.

Atribut ini diperkenalkan pada API Level 23.

android:maxRecents
Jumlah maksimum tugas yang di-root pada aktivitas ini dalam layar ringkasan. Ketika jumlah entri tercapai, sistem menghapus instance yang paling jarang digunakan dari layar ringkasan. Nilai yang valid adalah 1 sampai 50 (25 pada perangkat dengan memori rendah); nol tidak valid. Ini harus berupa nilai integer, seperti 50. Nilai default-nya adalah 16.
android:maxAspectRatio

Rasio aspek maksimum yang didukung aktivitas. Jika aplikasi berjalan pada perangkat yang rasio aspeknya lebih lebar, sistem akan secara otomatis memberi tampilan lebar aplikasi tersebut, sehingga sebagian layar tidak terpakai dan aplikasi bisa berjalan pada rasio aspek maksimum yang ditetapkan.

Rasio aspek maksimum dinyatakan sebagai bentuk desimal dari hasil bagi perangkat yang lebih panjang dibagi dengan dimensi lebih pendek. Misalnya, jika rasio aspek maksimumnya 7:3, setel nilai atribut ini menjadi 2,33.

Pada perangkat non-wearable, nilai atribut ini harus 1,33 atau lebih besar. Pada perangkat wearable, nilai atribut harus 1,0 atau lebih besar. Jika tidak, sistem mengabaikan nilai yang ditetapkan.

Catatan: Atribut ini diabaikan jika aktivitas menyetel resizeableActivity ke benar (true), karena hal tersebut berarti aktivitas Anda mendukung ukuran apa pun.

Untuk mengetahui informasi selengkapnya tentang atribut ini, lihat Mendeklarasikan rasio lebar tinggi maksimum di Mendeklarasikan dukungan layar terbatas.

android:multiprocess
Apakah instance aktivitas dapat diluncurkan ke dalam proses komponen yang memulainya — "true" jika ya, dan "false" jika tidak. Nilai defaultnya adalah "false".

Biasanya, instance baru dari aktivitas diluncurkan ke dalam proses aplikasi yang menentukannya, sehingga semua instance aktivitas berjalan dalam proses yang sama. Namun, jika flag ini disetel ke "true", instance aktivitas bisa berjalan di beberapa proses, memungkinkan sistem untuk membuat instance di mana pun digunakan (izin yang diberikan memungkinkan hal ini), sesuatu yang hampir tidak penting atau diperlukan.

android:name
Nama class yang mengimplementasikan aktivitas, subclass dari Activity. Nilai atribut harus berupa nama class yang sepenuhnya memenuhi syarat (seperti, "com.example.project.ExtracurricularActivity"). Namun, sebagai singkatan, jika karakter pertama dari nama tersebut adalah titik (misalnya, ".ExtracurricularActivity"), ini ditambahkan ke namespace yang ditentukan dalam file build.gradle.

Setelah memublikasikan aplikasi, Anda tidak boleh mengubah nama ini (kecuali Anda telah menetapkan android:exported="false").

Tidak ada default untuknya. Nama ini harus ditetapkan.

android:noHistory
Apakah aktivitas harus dihapus dari tumpukan aktivitas dan selesai (panggilan metode finish()-nya) ketika pengguna memilih keluar dan tidak lagi terlihat di layar — "true" jika seharusnya selesai, dan "false" jika tidak demikian. Nilai defaultnya adalah "false".

Nilai "true" berarti aktivitas tidak akan meninggalkan jejak historis. Ini tidak akan tetap berada dalam tumpukan aktivitas tugas, sehingga pengguna tidak akan bisa kembali ke sana. Dalam hal ini, onActivityResult() tidak pernah dipanggil jika Anda memulai aktivitas lain sebagai akibat dari aktivitas ini.

Atribut ini diperkenalkan di API Level 3.

android:parentActivityName
Nama class induk logis dari aktivitas. Nama yang ada di sini harus cocok dengan nama class yang diberikan ke elemen <activity> atribut android:name yang sesuai.

Sistem akan membaca atribut ini untuk menentukan aktivitas yang harus dimulai ketika pengguna menekan tombol Naik di panel tindakan. Sistem ini juga bisa menggunakan informasi ini untuk menyatukan data sebelumnya aktivitas dengan TaskStackBuilder.

Untuk mendukung API level 4 - 16, Anda juga bisa mendeklarasikan aktivitas induk dengan elemen <meta-data> yang menetapkan nilai untuk "android.support.PARENT_ACTIVITY". Misalnya:

<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>

Untuk informasi selengkapnya tentang mendeklarasikan aktivitas induk untuk mendukung navigasi Naik, baca Menyediakan Navigasi Naik.

Atribut ini diperkenalkan pada API Level 16.

android:persistableMode

Menentukan bagaimana instance aktivitas dipertahankan dalam tugas yang berisi seluruh perangkat dimulai ulang.

Jika aktivitas root dari tugas menetapkan nilai atribut ini ke persistRootOnly, hanya aktivitas root yang dipertahankan. Jika tidak, aktivitas yang lebih tinggi dari data sebelumnya tugas diperiksa; salah satu dari aktivitas yang menetapkan nilai atribut ini ke persistAcrossReboots dipertahankan.

Jika Anda menggunakan atribut ini, Anda harus menetapkan nilainya ke salah satu dari berikut:

Nilai Deskripsi
persistRootOnly Nilai default. Saat sistem memulai ulang, tugas aktivitas dipertahankan, namun hanya aktivitas root dari intent peluncuran yang digunakan.

Jika intent peluncuran aplikasi Anda memuat aktivitas root aplikasi, aktivitas tidak akan menerima objek PersistableBundle. Oleh karena itu, jangan gunakan onSaveInstanceState() untuk mempertahankan status aktivitas root aplikasi Anda jika perangkat dimulai ulang.

Catatan: Nilai atribut ini memengaruhi perilaku aplikasi hanya jika nilai ini disetel ke aktivitas root aplikasi.

persistAcrossReboots

Status aktivitas ini dipertahankan, bersama dengan status setiap aktivitas yang lebih tinggi dari data sebelumnya yang memiliki atribut persistableMode yang ditetapkan ke persistAcrossReboots. Jika suatu aktivitas tidak memiliki atribut persistableMode yang ditetapkan ke persistAcrossReboots, atau jika diluncurkan menggunakan tanda Intent.FLAG_ACTIVITY_NEW_DOCUMENT aktivitas tersebut, bersama dengan semua aktivitas yang lebih tinggi dari data sebelumnya, tidak dipertahankan.

Saat suatu intent memuat aktivitas yang atribut persistableMode ditetapkan ke persistAcrossReboots di aplikasi Anda, aktivitas menerima objek PersistableBundle di metode onCreate(). Oleh karena itu, Anda dapat menggunakan onSaveInstanceState() untuk mempertahankan status aktivitas jika perangkat dimulai ulang selama atribut persistableMode ditetapkan ke persistAcrossReboots.

Catatan: Nilai atribut ini memengaruhi perilaku aplikasi meskipun disetel pada aktivitas selain aktivitas root aplikasi Anda.

persistNever

Status aktivitas tidak dipertahankan.

Catatan: Nilai atribut ini memengaruhi perilaku aplikasi hanya jika nilai ini disetel ke aktivitas root aplikasi.

Atribut ini diperkenalkan pada API Level 21.

android:permission
Nama izin yang harus dimiliki klien untuk meluncurkan aktivitas atau mendapatkannya untuk merespons intent. Jika pemanggil startActivity() atau startActivityForResult() belum mendapatkan izin yang ditetapkan, intent-nya tidak akan dikirimkan ke aktivitas.

Jika atribut ini tidak ditetapkan, izin yang ditetapkan oleh elemen <application> atribut permission diterapkan untuk aktivitas tersebut. Jika tidak ada atribut yang ditetapkan, aktivitas tersebut tidak dilindungi oleh izin.

Untuk informasi selengkapnya mengenai izin, lihat bagian Izin di bagian Keamanan dan Izin di pengantar dan dokumen lainnya.

android:process
Nama proses tempat aktivitas harus berjalan. Biasanya, semua komponen aplikasi berjalan dalam nama proses default yang dibuat untuk aplikasi dan Anda tidak perlu menggunakan atribut ini. Namun jika perlu, Anda bisa mengganti nama proses default dengan atribut ini, sehingga Anda bisa menyebarkan komponen aplikasi di berbagai proses.

Jika nama yang ditetapkan untuk atribut ini diawali dengan titik dua (':'), proses baru, yang bersifat pribadi untuk aplikasi, akan dibuat saat diperlukan dan aktivitas akan berjalan dalam proses tersebut. Jika nama proses dimulai dengan karakter huruf kecil, aktivitas akan berjalan pada proses global dari nama tersebut, jika memiliki izin untuk melakukannya. Hal ini memungkinkan komponen dalam aplikasi yang berbeda untuk berbagi proses, sehingga mengurangi penggunaan resource.

Atribut process elemen <application> dapat menetapkan nama proses default yang berbeda untuk semua komponen.

android:relinquishTaskIdentity
Apakah aktivitas melepaskan ID tugas untuk aktivitas di atasnya dalam tumpukan tugas. Tugas yang aktivitas root-nya menetapkan atribut ini ke "true" menggantikan Intent dasar dengan hal tersebut dari aktivitas berikutnya dalam tugas. Jika aktivitas berikutnya juga menetapkan atribut ini ke "true", maka akan menghasilkan Intent dasar untuk setiap aktivitas yang diluncurkannya dalam tugas yang sama. Ini terus berlanjut untuk setiap aktivitas sampai menemukan aktivitas yang menetapkan atribut ini ke "false". Nilai defaultnya adalah "false".

Atribut yang ditetapkan ke "true" ini juga mengizinkan penggunaan ActivityManager.TaskDescription aktivitas untuk mengubah label, warna, dan ikon di layar ringkasan.

resizeableActivity

Menentukan apakah aplikasi mendukung mode multi-aplikasi. Anda dapat menetapkan atribut ini baik dalam elemen <activity> atau elemen <application> .

Jika Anda menetapkan atribut ini ke true, pengguna dapat meluncurkan aktivitas dalam mode layar terpisah dan format bebas. Jika Anda menyetel atribut ke salah (false), aplikasi tidak dapat diuji atau dioptimalkan untuk lingkungan multi-aplikasi. Sistem masih dapat menempatkan aktivitas dalam mode multi-aplikasi dengan mode kompatibilitas yang diterapkan. Menyetel atribut ini ke benar (true) juga tidak menjamin bahwa tidak akan ada aplikasi lain dalam mode multi-aplikasi yang terlihat di layar (seperti picture-in-picture) atau di tampilan lain. Oleh karena itu, menetapkan tanda ini tidak memastikan aplikasi Anda memiliki akses resource eksklusif.

Jika aplikasi menargetkan API level 24 atau yang lebih tinggi, tetapi Anda tidak menetapkan nilai untuk atribut ini, nilai atribut akan ditetapkan secara default ke true.

Jika aplikasi Anda menargetkan API level 31 atau yang lebih tinggi, atribut ini berfungsi secara berbeda pada layar kecil dan besar:

  • Layar besar (sw >= 600dp): Semua aplikasi mendukung mode multi-aplikasi. Atribut ini menunjukkan apakah aplikasi dapat diubah ukurannya (bukan apakah aplikasi mendukung mode multi-aplikasi). Jika resizeableActivity="false", aplikasi dialihkan ke mode kompatibilitas saat diperlukan agar sesuai dengan dimensi tampilan.
  • Layar kecil (sw < 600 dp): Jika resizeableActivity="true" serta lebar dan tinggi minimum aktivitas berada dalam persyaratan multi-aplikasi, aplikasi akan mendukung mode multi-aplikasi. Jika resizeableActivity="false", aplikasi tidak mendukung mode multi-aplikasi, terlepas dari lebar dan tinggi minimum aktivitas.

Catatan: Produsen perangkat dapat mengganti perilaku API level 31.

Atribut ini ditambahkan di API level 24.

Catatan: Nilai aktivitas root tugas diterapkan ke semua aktivitas tambahan yang diluncurkan dalam tugas. Artinya, jika aktivitas root tugas dapat diubah ukurannya, sistem akan memperlakukan semua aktivitas lain dalam tugas sebagai dapat diubah ukurannya. Jika aktivitas root tidak dapat diubah ukurannya, aktivitas lain dalam tugas tidak dapat diubah ukurannya.

android:screenOrientation
Orientasi tampilan aktivitas pada perangkat. Sistem mengabaikan atribut ini jika aktivitas tersebut berjalan dalam mode multi-aplikasi.

Nilainya bisa berupa salah satu string berikut:

"unspecified" Nilai default. Sistem memilih orientasi. Kebijakan yang digunakan, serta pilihan yang dibuat dalam konteks tertentu, mungkin berbeda antarperangkat.
"behind" Orientasi yang sama dengan aktivitas yang terletak persis di bawahnya dalam tumpukan aktivitas.
"landscape" Orientasi lanskap (lebar tampilan lebih panjang daripada tingginya).
"portrait" Orientasi potret (tinggi tampilan lebih panjang daripada lebarnya).
"reverseLandscape" Orientasi lanskap yang berlawanan arah dari lanskap normal. Ditambahkan di API level 9.
"reversePortrait" Orientasi potret yang berlawanan arah dari potret normal. Ditambahkan di API level 9.
"sensorLandscape" Orientasi lanskap, namun bisa lanskap normal atau terbalik berdasarkan sensor perangkat. Sensor digunakan meskipun pengguna telah mengunci rotasi berbasis sensor. Ditambahkan di API level 9.
"sensorPortrait" Orientasi potret, namun bisa potret normal atau terbalik berdasarkan sensor perangkat. Sensor digunakan meskipun pengguna telah mengunci rotasi berbasis sensor. Ditambahkan di API level 9.
"userLandscape" Orientasi lanskap, namun bisa lanskap normal atau terbalik berdasarkan sensor perangkat dan preferensi sensor pengguna. Ditambahkan dalam API level 18.
"userPortrait" Orientasi potret, namun bisa potret normal atau terbalik berdasarkan sensor perangkat dan preferensi sensor pengguna. Ditambahkan dalam API level 18.
"sensor" Orientasi ditentukan berdasarkan sensor orientasi perangkat. Orientasi tampilan tergantung bagaimana pengguna memegang perangkat; orientasi akan berubah jika pengguna memutar perangkat. Meskipun demikian, beberapa perangkat secara default tidak bisa berputar ke keempat orientasi. Untuk mengizinkan keempat orientasi, gunakan "fullSensor" Sensor digunakan meskipun pengguna mengunci rotasi berbasis sensor.
"fullSensor" Orientasi ditentukan berdasarkan sensor orientasi perangkat untuk setiap 4 orientasi. Ini serupa dengan "sensor" kecuali hal ini memungkinkan 4 orientasi layar ke semua arah, terlepas dari yang biasanya perangkat lakukan (misalnya, beberapa perangkat biasanya tidak menggunakan potret terbalik atau lanskap terbalik, namun ini mengaktifkannya). Ditambahkan di API level 9.
"nosensor" Orientasi ditetapkan tanpa mengacu pada sensor orientasi fisik. Sensor diabaikan, sehingga tampilan tidak akan berputar berdasar pada bagaimana pengguna menggerakkan perangkat.
"user" Orientasi yang saat ini disukai pengguna.
"fullUser" Jika pengguna telah mengunci rotasi berbasis sensor, ini berperilaku sama seperti user, jika tidak, ini berperilaku sama seperti fullSensor dan memungkinkan setiap 4 orientasi layar ke semua arah. Ditambahkan dalam API level 18.
"locked" Mengunci orientasi ke rotasi saat ini, apa pun itu. Ditambahkan dalam API level 18.

Catatan: Jika Anda mendeklarasikan salah satu nilai lanskap atau potret, ini dianggap sebagai persyaratan sulit untuk orientasi tempat aktivitas dijalankan. Dengan begitu, nilai yang Anda deklarasikan mengaktifkan pemfilteran oleh layanan seperti Google Play sehingga aplikasi hanya tersedia untuk perangkat yang mendukung orientasi yang dibutuhkan oleh aktivitas Anda. Misalnya, jika Anda mendeklarasikan "landscape", "reverseLandscape", atau "sensorLandscape", aplikasi Anda hanya akan tersedia untuk perangkat yang mendukung orientasi lanskap. Namun, Anda juga harus secara eksplisit mendeklarasikan bahwa aplikasi memerlukan orientasi potret atau lanskap dengan elemen <uses-feature> . Misalnya, <uses-feature android:name="android.hardware.screen.portrait"/>. Ini hanyalah perilaku pemfilteran yang disediakan oleh Google Play (dan layanan lain yang mendukungnya) dan platform tidak mengontrol apakah aplikasi Anda bisa diinstal jika perangkat mendukung orientasi tertentu saja.

android:showForAllUsers

Apakah aktivitas ditampilkan saat pengguna saat ini perangkat berbeda dari pengguna yang meluncurkan aktivitas. Anda bisa menetapkan atribut ini ke nilai literal—"true" atau "false"—atau Anda bisa menetapkan atribut ke resource atau atribut tema yang berisi nilai boleean.

Atribut ini ditambahkan di API level 23.

android:stateNotNeeded
Apakah aktivitas dapat dihentikan dan berhasil dimulai ulang tanpa menyimpan statusnya — "true" jika dapat dimulai ulang tanpa merujuk ke status sebelumnya, dan "false" jika status sebelumnya diperlukan. Nilai defaultnya adalah "false".

Biasanya, sebelum suatu aktivitas dimatikan sementara untuk menghemat sumber daya, metode onSaveInstanceState() akan dipanggil. Metode ini menyimpan status aktivitas saat ini di objek Bundle, yang kemudian diteruskan ke onCreate() ketika aktivitas dimulai ulang. Jika atribut ini ditetapkan ke "true", onSaveInstanceState() mungkin tidak dipanggil dan onCreate() akan diteruskan null, bukan Bundle — seperti ketika aktivitas dijalankan untuk pertama kalinya.

Setelan "true" memastikan bahwa aktivitas dapat dimulai ulang tanpa status dipertahankan. Misalnya, aktivitas yang menampilkan layar utama menggunakan setelan ini untuk memastikan bahwa aktivitas tidak dihapus jika bermasalah karena beberapa alasan.

supportsPictureInPicture

Menentukan apakah aktivitas mendukung tampilan Picture-in-Picture.

Atribut ini ditambahkan di API level 24.

android:taskAffinity
Tugas yang memiliki afinitas dengan aktivitas. Aktivitas dengan afinitas yang sama secara konseptual menjadi milik tugas yang sama (untuk "aplikasi" yang sama dari perspektif pengguna). Afinitas tugas ditentukan oleh afinitas aktivitas root-nya.

Afinitas menetapkan dua hal — tugas yang di-reparent aktivitas (lihat atribut allowTaskReparenting) dan tugas yang akan menjadi tempat bagi aktivitas ketika diluncurkan dengan flag FLAG_ACTIVITY_NEW_TASK .

Secara default, seluruh aktivitas dalam aplikasi memiliki afinitas yang sama. Anda bisa menetapkan atribut ini untuk mengelompokkannya secara berbeda, dan bahkan aktivitas tempat yang didefinisikan dalam aplikasi yang berbeda dalam tugas yang sama. Untuk menetapkan bahwa aktivitas tidak memiliki afinitas untuk tugas apa pun, tetapkan ke string kosong.

Jika atribut ini tidak ditetapkan, aktivitas akan mewarisi set afinitas yang ditetapkan untuk aplikasi (lihat atribut taskAffinity elemen <application> ). Nama afinitas default untuk aplikasi adalah namespace yang ditetapkan dalam file build.gradle.

android:theme
Sebuah referensi ke sumber daya model yang menetapkan tema keseluruhan untuk aktivitas tersebut. Ini secara otomatis menetapkan konteks aktivitas untuk menggunakan tema ini (lihat setTheme(), dan juga bisa menyebabkan animasi "mulai" sebelum aktivitas dijalankan (agar lebih cocok dengan tampilan aktivitas sebenarnya).

Jika atribut ini tidak ditetapkan, aktivitas mewarisi tema yang ditetapkan untuk aplikasi secara keseluruhan — dari atribut theme elemen <application> . Jika atribut tersebut juga tidak ditetapkan, sistem default tema yang akan digunakan. Untuk informasi selengkapnya, lihat panduan developer Gaya dan Tema.

android:uiOptions
Opsi tambahan untuk UI aktivitas.

Harus berupa salah satu dari nilai berikut.

NilaiDeskripsi
"none"Tidak ada opsi UI tambahan. Ini adalah defaultnya.
"splitActionBarWhenNarrow"Tambahkan panel di bagian bawah layar untuk menampilkan item tindakan pada panel aplikasi (juga dikenal sebagai panel tindakan), saat dibatasi untuk ruang horizontal (misalnya saat mode potret pada handset). Daripada menampilkan sejumlah kecil item tindakan di panel aplikasi di bagian atas layar, panel aplikasi dibagi menjadi dua bagian, panel navigasi atas dan panel bawah untuk item tindakan. Ini memastikan jumlah ruang yang wajar tersedia bukan hanya untuk item tindakan, tetapi juga untuk elemen navigasi dan judul di bagian atas. Item menu tidak dibagi di dua panel; selalu muncul menjadi satu bagian.

Untuk informasi selengkapnya tentang panel aplikasi, lihat kelas pelatihan Menambahkan Panel Aplikasi.

Atribut ini ditambahkan di API level 14.

android:windowSoftInputMode
Bagaimana jendela utama aktivitas berinteraksi dengan jendela yang berisi keyboard virtual di layar. Penetapan untuk atribut ini memengaruhi dua hal:
  • Status keyboard virtual — apakah tersembunyi atau terlihat — ketika aktivitas menjadi fokus perhatian pengguna.
  • Penyesuaian yang dilakukan bagi jendela utama aktivitas — apakah ukurannya diperkecil untuk memberikan ruang bagi keyboard virtual atau apakah materinya digeser agar fokus tampilan tetap terlihat ketika sebagian jendela tertutup oleh keyboard virtual.

Penetapan harus berupa salah satu nilai yang tercantum dalam tabel berikut, atau kombinasi dari satu nilai "state..." ditambah satu nilai "adjust...". Menetapkan beberapa nilai di salah satu grup — misalnya beberapa nilai "state...", — memiliki hasil yang tidak ditentukan. Nilai individual dipisahkan oleh batang vertikal (|). Misalnya:

<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >

Nilai yang ditetapkan di sini (selain "stateUnspecified" dan "adjustUnspecified" ) menggantikan nilai yang ditetapkan dalam tema.

Nilai Deskripsi
"stateUnspecified" Status keyboard virtual (apakah tersembunyi atau terlihat) tidak ditetapkan. Sistem akan memilih status yang tepat atau bergantung pada setelan dalam temanya.

Ini adalah penetapan default untuk perilaku keyboard virtual.

"stateUnchanged" Keyboard virtual disimpan apa pun status terakhirnya, apakah terlihat atau tersembunyi, ketika aktivitas muncul ke depan.
"stateHidden" Keyboard virtual akan disembunyikan jika pengguna memilih aktivitas — yaitu ketika pengguna dengan tegas mengarah maju ke aktivitas, daripada mundur ke dalamnya karena meninggalkan aktivitas lain.
"stateAlwaysHidden" Keyboard virtual selalu disembunyikan jika jendela utama aktivitas memiliki fokus input.
"stateVisible" Keyboard virtual dibuat terlihat ketika pengguna memilih aktivitas — yaitu, ketika pengguna mengarah maju ke aktivitas, bukannya mundur ke dalamnya karena meninggalkan aktivitas lain.
"stateAlwaysVisible" Keyboard virtual terlihat saat jendela menerima fokus input.
"adjustUnspecified" Tidak menetapkan apakah jendela utama aktivitas ini berubah ukuran agar tersedia ruang bagi keyboard virtual, atau materi jendela digeser agar fokus aktif terlihat di layar. Sistem akan secara otomatis memilih salah satu mode ini tergantung pada apakah materi jendela memiliki tampilan layout yang bisa menggulir materinya. Jika ada tampilan seperti itu, jendela akan diubah ukurannya, dengan asumsi bahwa menggulir bisa membuat semua materi jendela terlihat dalam area yang lebih kecil.

Ini adalah pengaturan default untuk perilaku jendela utama.

"adjustResize" Jendela utama aktivitas selalu diubah ukurannya agar tersedia ruang bagi keyboard virtual di layar.
"adjustPan" Jendela utama aktivitas tidak diubah ukurannya untuk membuat ruang bagi keyboard virtual. Sebaliknya, materi jendela secara otomatis akan digeser sehingga fokus aktif tidak terhalang oleh keyboard dan pengguna bisa melihat apa yang mereka ketik. Ini biasanya kurang diminati dibandingkan mengubah ukuran, karena pengguna mungkin perlu menutup keyboard virtual untuk bisa berinteraksi dengan bagian jendela yang terhalang.

Atribut ini diperkenalkan di API Level 3.

diperkenalkan di:
API Level 1 untuk semua atribut kecuali noHistory dan windowSoftInputMode, yang ditambahkan dalam API Level 3.
lihat juga:
<application>
<activity-alias>