<aktivitas>

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: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>
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 pernah dijalankan.
atribut:
android:allowEmbedded
Menunjukkan bahwa aktivitas bisa diluncurkan sebagai turunan yang disematkan ke aktivitas lain, khususnya jika turunan berada dalam penampung, seperti Display milik aktivitas lain. Misalnya, aktivitas yang digunakan untuk notifikasi khusus Wear mendeklarasikannya sehingga Wear bisa menampilkan aktivitas dalam aliran konteksnya, yang terletak dalam proses lain.

Nilai default atribut ini adalah false.

android:allowTaskReparenting
Apakah aktivitas dapat berpindah dari tugas yang memulainya ke tugas yang memiliki afinitas saat tugas tersebut selanjutnya dipindah ke latar depan. Nilainya "true" jika dapat berpindah, dan "false" jika tetap 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 sepanjang waktu. 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 bergerak 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 saat 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 bisa berada di akar tugas, re-parenting terbatas untuk mode "standard" dan "singleTop". (Lihat juga atribut launchMode.)

android:alwaysRetainTaskState
Apakah status tugas tempat aktivitas berada selalu dipertahankan oleh sistem. "true" jika ya, dan "false" jika sistem dapat mereset tugas ke status awalnya dalam situasi tertentu. Nilai defaultnya adalah "false". Atribut ini hanya berguna untuk aktivitas root tugas. Atribut 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, bagaimana pun caranya mereka sampai di sana. Ini berguna dalam aplikasi seperti browser web yang memiliki banyak status, seperti beberapa tab terbuka yang ingin dipertahankan oleh pengguna.

android:autoRemoveFromRecents
Apakah tugas yang diluncurkan oleh aktivitas dengan atribut ini tetap berada di layar Terbaru hingga aktivitas terakhir dalam tugas selesai. Jika true, tugas akan secara otomatis dihapus dari layar Terbaru. Ini menggantikan penggunaan FLAG_ACTIVITY_RETAIN_IN_RECENTS oleh pemanggil. Aktivitas harus bernilai boolean, entah "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 hanya ditampilkan di layar utama, banner hanya ditentukan oleh aplikasi dengan aktivitas yang menangani intent CATEGORY_LEANBACK_LAUNCHER.

Atribut ini ditetapkan sebagai referensi ke resource drawable yang berisi image, seperti "@drawable/banner". Tidak ada banner default.

Untuk mengetahui informasi selengkapnya, lihat Menyediakan banner layar utama dalam Mulai Menggunakan Aplikasi TV.

android:clearTaskOnLaunch
Apakah semua aktivitas akan dihapus dari tugas, kecuali untuk aktivitas root, saat diluncurkan kembali dari layar utama. "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 diabaikan untuk semua aktivitas lain dalam tugas.

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

Misalkan pengguna meluncurkan aktivitas P dari layar utama, dan dari sana menuju aktivitas Q. Selanjutnya, pengguna mengetuk 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 melihat P ketika kembali ke tugas.

Jika atribut ini dan allowTaskReparenting adalah "true", aktivitas apa pun yang dapat di-reparent akan dipindahkan ke tugas yang berbagi afinitas dengannya. Aktivitas yang tersisa kemudian dihapus.

Atribut ini diabaikan jika FLAG_ACTIVITY_RESET_TASK_IF_NEEDED tidak ditetapkan.

android:colorMode

Menentukan mode warna aktivitas. Jika ditentukan, dapat berupa hdr atau wideColorGamut.

Jika hdr, meminta agar aktivitas ditampilkan dalam rentang dinamis tinggi jika perangkat mendukungnya.

Jika wideColorGamut, meminta agar aktivitas ditampilkan dalam mode gamut warna yang luas di perangkat yang kompatibel. Dalam mode gamut warna yang luas, jendela dapat dirender 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 mengetahui informasi selengkapnya mengenai rendering dalam mode warna yang luas, lihat Meningkatkan grafis dengan konten warna yang luas.

android:configChanges
Mencantumkan perubahan konfigurasi bahwa aktivitas 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.

String berikut adalah nilai yang valid untuk atribut ini. Beberapa nilai dipisahkan oleh |, seperti "locale|navigation|orientation".

Nilai Deskripsi
"density" Perubahan pada kepadatan tampilan, seperti ketika pengguna menentukan skala tampilan yang berbeda atau tampilan yang berbeda, sekarang aktif.

Ditambahkan di API level 24

"fontScale" Perubahan pada faktor penskalaan font, seperti saat pengguna memilih ukuran font global yang baru.
"keyboard" Perubahan pada jenis keyboard, seperti saat pengguna mencolokkan keyboard eksternal.
"keyboardHidden" Perubahan pada aksesibilitas keyboard, seperti saat pengguna menggunakan keyboard hardware.
"layoutDirection" Perubahan pada arah tata letak, misalnya dari kiri ke kanan (LTR) menjadi kanan ke kiri (RTL).

Ditambahkan di API level 17

"locale" Perubahan pada lokalitas, misalnya saat pengguna memilih bahasa baru yang digunakan untuk menampilkan teks.
"mcc" Perubahan pada kode negara seluler (MCC) IMSI saat SIM terdeteksi yang memperbarui MCC.
"mnc" Perubahan pada kode jaringan seluler (MNC) IMSI saat SIM terdeteksi yang memperbarui MNC.
"navigation" Perubahan TA ke jenis navigasi (trackball atau D-pad). Biasanya, hal ini tidak terjadi.
"orientation"

Perubahan pada orientasi layar, seperti saat pengguna 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" Perubahan pada tata letak layar, seperti saat tampilan yang berbeda menjadi aktif.
"screenSize" Perubahan pada ukuran layar yang tersedia saat ini.

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

Ditambahkan di API level 13

"smallestScreenSize" Perubahan pada ukuran layar fisik.

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

Ditambahkan di API level 13

"touchscreen" Perubahan pada layar sentuh. Biasanya, hal ini tidak terjadi.
"uiMode" Perubahan pada mode antarmuka pengguna, seperti saat pengguna menempatkan perangkat di meja atau dok mobil, atau perubahan mode malam. Untuk mengetahui informasi selengkapnya mengenai mode UI yang berbeda, lihat UiModeManager.

Ditambahkan di API level 8.

Semua perubahan konfigurasi ini bisa berdampak pada nilai resource yang terlihat oleh aplikasi. Oleh karena itu, ketika onConfigurationChanged() dipanggil, biasanya semua resource perlu diambil kembali, termasuk tata letak tampilan dan drawable, untuk menangani perubahan dengan benar.

Catatan: Untuk menangani 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 tersebut Direct-Boot aware—yaitu, apakah aktivitas dapat dijalankan sebelum pengguna membuka kunci perangkat.

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

Nilai defaultnya adalah "false".

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

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 akan 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 Terbaru memperlakukan aktivitas seperti yang akan terjadi secara default: menampilkan tugas tunggal untuk aplikasi, yang dilanjutkan dari aktivitas apa pun yang terakhir dipanggil pengguna.
"never" Aktivitas tidak diluncurkan ke dalam dokumen baru meskipun intent berisi FLAG_ACTIVITY_NEW_DOCUMENT. Menetapkan nilai ini akan menggantikan perilaku tanda FLAG_ACTIVITY_NEW_DOCUMENT dan FLAG_ACTIVITY_MULTIPLE_TASK, jika salah satunya ditetapkan di aktivitas, dan layar Terbaru menampilkan satu tugas untuk aplikasi, yang melanjutkan dari aktivitas apa pun yang terakhir dipanggil pengguna.

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

android:enabled
Apakah aktivitas dapat dibuat instance-nya oleh sistem. Nilainya "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 bernilai "true", karena keduanya ditetapkan secara default agar sistem dapat membuat instance aktivitas. Jika salah satunya "false", instance tidak dapat dibuat.

android:enableOnBackInvokedCallback
Tanda ini memungkinkan Anda memilih untuk menggunakan animasi sistem prediktif pada tingkat aktivitas. Perilaku ini membuat proses migrasi aplikasi multi-aktivitas besar ke gestur kembali prediktif menjadi lebih mudah.

Menyetel android:enableOnBackInvokedCallback=false akan menonaktifkan animasi kembali prediktif, baik di tingkat aktivitas maupun di tingkat aplikasi, tergantung tempat Anda menetapkan tag, dan memerintahkan sistem untuk mengabaikan panggilan ke API platform OnBackInvokedCallback.

android:excludeFromRecents
Apakah tugas yang dimulai oleh aktivitas ini dikecualikan dari layar Terbaru. Artinya, ketika aktivitas tersebut adalah aktivitas root dari tugas baru, atribut ini menentukan apakah tugas tersebut muncul dalam daftar aplikasi terbaru. "true" jika tugas dikecualikan dari daftar; "false" jika disertakan. Nilai defaultnya adalah "false".

android:exported
Apakah aktivitas dapat diluncurkan oleh komponen aplikasi lain:

  • Jika "true", aktivitas dapat diakses oleh aplikasi apa pun, dan dapat diluncurkan oleh nama class yang sama.
  • 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 digunakan untuk membatasi entity eksternal yang dapat memanggil aktivitas. Lihat atribut permission.

android:finishOnTaskLaunch
Apakah instance aktivitas yang ada dihentikan, kecuali untuk aktivitas root, saat pengguna meluncurkan kembali tugasnya dengan memilih tugas di layar utama. "true" jika dinonaktifkan, dan "false" jika tidak. Nilai defaultnya adalah "false".

Jika atribut ini dan allowTaskReparenting bernilai "true", atribut ini mengalahkan yang lainnya. 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 dengan akselerasi hardware diaktifkan untuk aktivitas ini. "true" jika diaktifkan, dan "false" jika tidak. Nilai defaultnya adalah "false".

Di Android 3.0 dan yang lebih tinggi, perender OpenGL dengan akselerasi hardware tersedia untuk aplikasi guna meningkatkan performa bagi berbagai operasi grafis 2D yang umum. Jika perender dengan akselerasi 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 mengonsumsi lebih banyak RAM.

Tidak semua operasi 2D OpenGL diakselerasi. Jika Anda mengaktifkan perender dengan akselerasi hardware, uji apakah aplikasi Anda dapat menggunakan 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. Untuk informasi tentang label, lihat atribut android:label.

Atribut ini ditetapkan sebagai referensi ke resource drawable yang berisi definisi gambar. Jika tidak, ikon yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan. Untuk mengetahui informasi selengkapnya, lihat atribut icon elemen <application>.

Ikon aktivitas, baik yang ditetapkan di sini atau oleh elemen <application>, juga merupakan ikon default untuk semua filter intent aktivitas. Untuk mengetahui informasi selengkapnya, lihat atribut icon elemen <intent-filter>.

android:immersive
Menetapkan pengaturan mode imersif untuk aktivitas saat ini. Jika berupa "true", anggota ActivityInfo.flags selalu sudah menetapkan FLAG_IMMERSIVE, meskipun mode imersif berubah saat runtime menggunakan metode setImmersive().
android:label
Label dapat dibaca oleh pengguna untuk aktivitas tersebut. Label ditampilkan di layar jika aktivitas ditunjukkan kepada 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. Untuk mengetahui informasi selengkapnya, lihat atribut label elemen <intent-filter>.

Label 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
Instruksi untuk cara aktivitas diluncurkan. Ada lima mode yang bekerja sama dengan tanda aktivitas (konstanta FLAG_ACTIVITY_*) di objek Intent untuk menentukan apa yang terjadi saat aktivitas dipanggil untuk menangani intent:

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

Mode default-nya adalah "standard".

Seperti ditunjukkan dalam tabel berikut, mode tersebut terdiri dari dua grup utama, dengan aktivitas "standard" dan "singleTop" di satu sisi, dan aktivitas "singleTask", "singleInstance", dan "singleInstancePerTask" di sisi lainnya. Sebuah 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. Biasanya, instance diluncurkan ke tugas yang memanggil startActivity(), kecuali jika objek Intent berisi instruksi FLAG_ACTIVITY_NEW_TASK, dengan tugas yang berbeda dipilih. Untuk mengetahui informasi selengkapnya, 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. Tetapi, perangkat hanya dapat menyimpan satu tugas untuk menemukan aktivitas "singleTask" di root tugas aktivitas.

Mode "standard" dan "singleTop" berbeda satu sama lain dalam satu hal: setiap kali ada intent baru untuk aktivitas "standard", instance class yang baru 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 sudah memiliki instance yang ada dari aktivitas di bagian atas tumpukan, instance tersebut akan menerima intent baru, dalam panggilan onNewIntent(). Instance baru tidak dibuat. Atau—jika instance yang ada dari aktivitas "singleTop" berada dalam tugas target, tetapi tidak di bagian atas tumpukan, atau jika berada di bagian atas tumpukan, tetapi tidak di dalam tugas target—instance baru akan dibuat dan didorong pada tumpukan.

Demikian pula, jika pengguna menavigasi ke atas ke 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 bagian atas tumpukan, dan status tidak berubah.

Intent navigasi diterima oleh metode onNewIntent() aktivitas induk. Jika aktivitas induk memiliki standard mode peluncuran, dan intent up tidak berisi FLAG_ACTIVITY_CLEAR_TOP, aktivitas saat ini dan induknya keluar dari tumpukan, dan instance baru 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, terutama aktivitas "standard" dan "singleTop", menjadi bagian dari tugasnya.

Di sisi lain, aktivitas "singleInstance" tidak mengizinkan aktivitas lain menjadi bagian dari tugasnya. Aktivitas tersebut 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 bahwa 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 dari tugas, aktivitas pertama yang membuat tugas. Oleh karena itu, hanya ada satu instance dari aktivitas ini dalam tugas. Namun, aktivitas ini dapat dibuat instance-nya beberapa kali dalam tugas yang berbeda.

Seperti ditunjukkan dalam tabel sebelumnya, "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, "singleTask", "singleInstance", dan "singleInstancePerTask", tidak sesuai untuk sebagian besar aplikasi. Mode itu 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 mengetahui informasi selengkapnya tentang mode peluncuran dan interaksinya dengan tanda Intent, lihat 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 disetujui oleh pengendali kebijakan perangkat (DPC) yang dapat berjalan saat sistem berada dalam mode mengunci 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 lockTask, dan pengguna perangkat tidak dapat memasang pin tugas ini dari layar Terbaru.

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 di API level 23.

android:maxRecents
Jumlah maksimum tugas yang di-root pada aktivitas ini dalam layar Terbaru. Ketika jumlah entri tercapai, sistem menghapus instance yang paling jarang digunakan dari layar Terbaru. Nilai yang valid adalah bilangan bulat dari 1 sampai 50, atau 1 sampai 25 pada perangkat dengan memori rendah. Nol tidak valid. 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, karena hal tersebut berarti aktivitas Anda mendukung ukuran apa pun.

Untuk mengetahui informasi selengkapnya tentang atribut ini, lihat Mendeklarasikan rasio aspek maksimum.

android:multiprocess
Apakah instance aktivitas dapat diluncurkan ke dalam proses dari 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 tanda ini disetel ke "true", instance aktivitas bisa berjalan di beberapa proses, memungkinkan sistem untuk membuat instance di mana pun mereka 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 biasanya adalah nama class yang sepenuhnya memenuhi syarat, seperti "com.example.project.ExtracurricularActivity". Namun, sebagai singkatan, jika karakter pertama dari nama adalah titik, seperti ".ExtracurricularActivity", karakter tersebut akan ditambahkan ke namespace yang ditentukan dalam file build.gradle.

Setelah Anda memublikasikan aplikasi, jangan ubah nama ini, kecuali jika Anda menetapkan android:exported="false". Tidak ada default untuknya. Nama ini harus ditetapkan.

android:noHistory
Apakah aktivitas dihapus dari tumpukan aktivitas dan selesai, dengan memanggil metode finish(), saat pengguna keluar dari aktivitas tersebut dan tidak lagi terlihat di layar. "true" jika sudah selesai, dan "false" jika belum. Nilai defaultnya adalah "false".

Nilai "true" berarti aktivitas tersebut tidak meninggalkan rekaman aktivitas historis. Aktivitas itu tidak tetap berada dalam tumpukan aktivitas tugas, sehingga pengguna tidak dapat 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 atribut android:name milik elemen <activity> yang sesuai.

Sistem akan membaca atribut ini untuk menentukan aktivitas yang akan dimulai ketika pengguna mengetuk 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":

<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 mengetahui informasi selengkapnya tentang mendeklarasikan aktivitas induk untuk mendukung navigasi Naik, baca Menyediakan Navigasi Naik.

Atribut ini diperkenalkan di API level 16.

android:persistableMode

Menentukan bagaimana instance aktivitas dipertahankan dalam tugas yang berisi saat 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() tidak diberi izin yang ditentukan, intent-nya tidak akan dikirim ke aktivitas.

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

Untuk mengetahui informasi selengkapnya tentang izin, lihat bagian Izin di ringkasan manifes Aplikasi dan Tips keamanan.

android:process
Nama proses tempat aktivitas 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 tugasnya ke aktivitas di atasnya dalam tumpukan tugas. Tugas yang aktivitas akarnya menyetel atribut ini ke "true" menggantikan Intent dasar dengan hal tersebut dari aktivitas berikutnya dalam tugas.

Jika aktivitas berikutnya juga menetapkan atribut ini ke "true", aktivitas tersebut akan menghasilkan Intent dasar untuk aktivitas apa pun yang diluncurkan dalam tugas yang sama. Ini terus berlanjut untuk setiap aktivitas sampai menemukan aktivitas yang menyetel atribut ini ke "false". Nilai defaultnya adalah "false".

Atribut yang disetel ke "true" juga mengizinkan penggunaan aktivitas dari ActivityManager.TaskDescription untuk mengubah label, warna, dan ikon di layar Terbaru.

android: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 "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.

Mengatur atribut ini ke "false" tidak menjamin bahwa tidak ada aplikasi lain dalam mode multi-aplikasi yang terlihat di layar, seperti di picture-in-picture, atau di tampilan lain. Oleh karena itu, menyetel tanda ini tidak berarti aplikasi Anda memiliki akses resource eksklusif.

Jika aplikasi menargetkan API level 24 atau yang lebih tinggi, dan 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 aktivitas pada tampilan perangkat.

Di Android 7.0 (level API 24) dan yang lebih tinggi, sistem mengabaikan perubahan runtime pada atribut ini jika aktivitas berada dalam mode multi-aplikasi.

Di Android 12 (level API 31) dan yang lebih tinggi, produsen perangkat dapat mengonfigurasi setiap layar perangkat (seperti layar perangkat foldable seukuran tablet) untuk mengabaikan spesifikasi orientasi dan memaksa aplikasi yang ditetapkan sebagai potret-saja menjadi tegak, tetapi ditampilkan lebar pada mode lanskap, yang memastikan aplikasi masih memiliki rasio aspek potret, tetapi mengorientasikan aplikasi untuk kegunaan yang lebih baik.

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. Namun, bergantung pada konfigurasi perangkat, rotasi terbalik mungkin tidak diizinkan. 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. Namun, bergantung pada konfigurasi perangkat, rotasi terbalik mungkin tidak diizinkan. Ditambahkan dalam API level 18.
"sensor" Sensor orientasi perangkat menentukan orientasi. Orientasi tampilan bergantung pada bagaimana pengguna memegang perangkat. Tampilan akan berubah ketika pengguna memutar perangkat. Meskipun demikian, beberapa perangkat secara default tidak bisa berputar ke keempat orientasi. Untuk menggunakan keempat orientasi, gunakan "fullSensor". Sensor digunakan meskipun pengguna mengunci rotasi berbasis sensor.
"fullSensor" Sensor orientasi perangkat menentukan orientasi untuk masing-masing dari empat orientasi. Ini serupa dengan "sensor", kecuali bahwa fitur ini memungkinkan yang mana pun dari empat orientasi layar yang dimungkinkan, terlepas dari apa yang biasanya didukung perangkat. Misalnya, beberapa perangkat biasanya tidak menggunakan potret terbalik atau lanskap terbalik, tetapi fitur ini memungkinkan orientasi tersebut. Ditambahkan di API level 9.
"nosensor" Orientasi ditetapkan tanpa mengacu pada sensor orientasi fisik. Sensor diabaikan, sehingga tampilan tidak berputar berdasarkan cara pengguna menggerakkan perangkat.
"user" Orientasi yang saat ini disukai pengguna.
"fullUser" Jika pengguna telah mengunci rotasi berbasis sensor, fitur ini berperilaku sama seperti user, jika tidak, fitur ini berperilaku sama seperti fullSensor dan memungkinkan yang mana pun dari empat orientasi layar yang dimungkinkan. 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. 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.

Selain itu, deklarasikan secara eksplisit bahwa aplikasi Anda memerlukan orientasi potret atau lanskap dengan Elemen <uses-feature>, seperti <uses-feature android:name="android.hardware.screen.portrait"/>. Ini adalah perilaku pemfilteran yang disediakan oleh Google Play dan layanan lain yang mendukungnya, dan platform itu sendiri tidak mengontrol apakah aplikasi Anda dapat diinstal jika perangkat mendukung orientasi tertentu saja.

android:showForAllUsers

Apakah aktivitas ditampilkan saat pengguna perangkat saat ini berbeda dengan pengguna yang meluncurkan aktivitas. Anda bisa menetapkan atribut ini ke nilai literal, seperti "true" atau "false", atau Anda bisa menetapkan atribut ke resource atau atribut tema yang berisi nilai boolean.

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 resource, 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 saat aktivitas dimulai untuk pertama kalinya.

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

android:supportsPictureInPicture

Menentukan apakah aktivitas mendukung tampilan picture-in-picture.

android:taskAffinity
Tugas yang memiliki afinitas dengan aktivitas. Aktivitas dengan afinitas yang sama secara konseptual menjadi milik tugas yang sama, milik "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 menjadi tempat bagi aktivitas ketika diluncurkan dengan tanda 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 milik 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 theme ini dan juga bisa menyebabkan animasi "mulai" sebelum aktivitas diluncurkan, agar lebih cocok dengan tampilan aktivitas sebenarnya.

Jika atribut ini tidak ditetapkan, aktivitas akan mewarisi tema yang ditetapkan untuk aplikasi secara keseluruhan, dari atribut theme elemen <application>. Jika atribut tersebut juga tidak ditetapkan, tema sistem default akan digunakan. Untuk mengetahui informasi selengkapnya, lihat 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 berarti jumlah ruang yang wajar akan tersedia, bukan hanya untuk item tindakan, tetapi juga untuk elemen navigasi dan judul di bagian atas. Item menu tidak dibagi di dua panel. Keduanya selalu muncul bersama.

Untuk mengetahui informasi selengkapnya tentang panel aplikasi, lihat 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:
  • Apakah keyboard virtual akan disembunyikan atau terlihat saat aktivitas menjadi fokus perhatian pengguna.
  • Apakah jendela utama aktivitas diperkecil ukurannya untuk memberi ruang bagi keyboard virtual, atau apakah kontennya digeser agar fokus saat ini tetap terlihat ketika sebagian jendela tertutup oleh keyboard virtual.

Setelan 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 garis vertikal (|), seperti ditunjukkan dalam contoh berikut:

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

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

Nilai Deskripsi
"stateUnspecified" Apakah keyboard virtual disembunyikan atau terlihat tidak ditentukan. Sistem memilih status yang sesuai atau bergantung pada setelan dalam temanya.

Ini adalah setelan default untuk perilaku keyboard virtual.

"stateUnchanged" Keyboard virtual dipertahankan dalam apa pun status terakhirnya, apakah terlihat atau tersembunyi, ketika aktivitas berpindah ke latar depan.
"stateHidden" Keyboard virtual disembunyikan ketika pengguna memilih aktivitas—yaitu ketika pengguna dengan tegas menuju ke aktivitas, bukan kembali ke dalamnya ketika 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 dengan tegas menuju ke aktivitas, bukan kembali ke dalamnya ketika meninggalkan aktivitas lain.
"stateAlwaysVisible" Keyboard virtual terlihat saat jendela menerima fokus input.
"adjustUnspecified" Apakah jendela utama aktivitas diubah ukurannya agar tersedia ruang bagi keyboard virtual, atau konten jendela digeser agar fokus saat ini terlihat di layar tidak ditentukan. Sistem akan secara otomatis memilih salah satu mode ini, tergantung pada apakah konten jendela memiliki tampilan tata letak yang dapat menggulir kontennya. Jika ada tampilan seperti itu, jendela akan diubah ukurannya, dengan asumsi bahwa menggulir dapat membuat semua konten 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 menyediakan ruang bagi keyboard virtual. Sebaliknya, konten jendela secara otomatis akan digeser sehingga fokus saat ini tidak terhalang oleh keyboard, dan pengguna dapat selalu 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>