<activity>

sintaks:
<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"]
          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>
dimuat dalam:
<application>
bisa berisi:
<intent-filter>
<meta-data>
<layout>
keterangan:
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 anak yang disematkan dari aktivitas lain. Khususnya dalam kasus ketika anak 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
Bisa atau tidak suatu aktivitas berpindah dari tugas yang memulainya ke tugas yang memiliki afinitas adalah saat tugas tersebut berikutnya dibawa kedepan — "true" jika dapat bergerak, dan "false" jika harus tetap berada pada tugas tempatnya memulai.

Jika atribut ini tidak disetel, nilai yang ditetapkan oleh atribut allowTaskReparenting yang sesuai dari elemen <application> akan diterapkan untuk aktivitas. Nilai default-nya 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 bergerak ke tugas utama yang berkaitan dengan aplikasi tersebut.

Misalnya, jika pesan email berisi tautan ke laman web, mengeklik tautan akan memunculkan sebuah aktivitas yang bisa menampilkan laman. Aktivitas tersebut didefinisikan oleh aplikasi Browser, namun diluncurkan sebagai bagian dari tugas email. Jika itu di-reparent ke tugas Browser, itu akan ditampilkan ketika browser berikutnya muncul ke 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 akarnya. Karena itu, menurut definisi, aktivitas akar 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
Iya atau tidaknya suatu status dari tugas tempat aktivitas berada akan selalu dipertahankan oleh sistem adalah — "true" jika selalu dipertahankan, dan "false" jika sistem diperbolehkan untuk menyetel ulang tugas ke status awalnya dalam situasi tertentu. Nilai default-nya adalah "false". Atribut ini hanya berguna untuk aktivitas akar dari tugas; atribut tersebut diabaikan untuk semua aktivitas lainnya.

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

Namun, bila atribut ini bernilai "true", pengguna akan selalu kembali ke tugas dalam status terakhirnya, bagaimana pun caranya mereka sampai di sana. Hal 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 dibuang dari layar ringkasan. Itu menggantikan penggunaan FLAG_ACTIVITY_RETAIN_IN_RECENTS oleh pemanggil. Itu harus bernilai boolean, entah "true" atau "false".
android:banner
Sumber daya dapat digambar menyediakan spanduk grafis yang diperluas untuk item yang terkait. Gunakan dengan tag <activity> untuk menyediakan spanduk default bagi aktivitas tertentu, atau dengan tag <application> untuk menyediakan spanduk bagi semua aktivitas aplikasi.

Sistem menggunakan spanduk untuk mewakili aplikasi dalam layar beranda Android TV. Karena spanduk hanya ditampilkan di layar beranda, itu sebaiknya hanya ditetapkan oleh aplikasi dengan aktivitas yang menangani intent CATEGORY_LEANBACK_LAUNCHER.

Atribut ini harus ditetapkan sebagai referensi untuk sumber daya dapat digambar yang berisi gambar (misalnya "@drawable/banner"). Tidak ada spanduk default.

Lihat Menyediakan spanduk layar beranda di Memulai Aplikasi TV untuk informasi selengkapnya.

android:clearTaskOnLaunch
Benar atau tidaknya semua aktivitas akan dibuang dari tugas, kecuali untuk aktivitas akar, ketika itu diluncurkan kembali dari layar beranda —"true" jika tugas selalu dilucuti hingga ke aktivitas akarnya, dan"false" jika tidak. Nilai default-nya adalah "false". Atribut ini hanya berguna untuk aktivitas yang memulai tugas baru (aktivitas akar); itu diabaikan untuk semua aktivitas lain dalam tugas.

Bila bernilai "true", setiap kali pengguna memulai tugas lagi, mereka akan dibawa ke aktivitas akarnya terlepas dari apa yang terakhir mereka lakukan dalam tugas dan tidak memedulikan apakah mereka menggunakan tombol Back atau Beranda untuk meninggalkannya. Bila bernilai "false", tugas bisa dikosongkan dari aktivitas dalam situasi tertentu (lihat atribut alwaysRetainTaskState), meskipun tidak selalu.

Andaikan, misalnya, seseorang meluncurkan aktivitas P dari layar beranda, dan dari sana pergi ke aktivitas Q. Pengguna kemudian menekan Beranda, dan kemudian kembali ke aktivitas P. Biasanya, pengguna akan melihat aktivitas Q, karena itu adalah yang terakhir mereka lakukan dalam tugas P. Namun, jika P menetapkan flag ini ke "true", semua aktivitas di atasnya (dalam hal ini Q) telah dihapus saat pengguna menekan Beranda dan tugas masuk ke latar belakang. Jadi pengguna hanya melihat P ketika kembali ke tugas.

Jika atribut ini dan allowTaskReparenting bernilai "true", setiap aktivitas yang bisa di-reparent dipindahkan ke tugas yang mempunyai kesamaan afinitas; aktivitas lainnya kemudian dilepaskan, seperti dijelaskan di atas.

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 berpengaruh 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 waktu proses, aktivitas dimatikan dan dimulai ulang secara default, namun mendeklarasikan konfigurasi dengan atribut ini akan mencegah aktivitas dimulai ulang. Sebaliknya, aktivitas tetap berjalan dan metode onConfigurationChanged() dipanggil.

Catatan: Penggunaan atribut ini harus dihindari dan hanya digunakan sebagai langkah terakhir. Silakan baca Menangani Perubahan Waktu Proses untuk informasi selengkapnya tentang cara yang benar menangani mulai ulang karena perubahan konfigurasi.

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

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

Ditambahkan dalam 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 dalam API level 17.

"locale" Lokal 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, maka Anda juga harus mendeklarasikan konfigurasi "screenSize", karena juga berubah ketika 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 dalam 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 dalam 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 dalam API level 8.

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

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

android:directBootAware

Betul atau tidaknya aktivitas adalah direct-boot aware; 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 defaultnya adalah "false".

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

Atribut ini memiliki empat nilai yang menghasilkan efek berikut bila pengguna membuka dokumen dengan aplikasi:

Value Keterangan
"intoExisting" Sistem mencari tugas yang intent dasarnya ComponentName dan URI data cocok dengan intent peluncuran. Jika sistem menemukan tugas seperti itu, sistem akan menghapus tugas, dan memulai ulang dengan aktivitas akar 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, meski dokumen sudah dibuka. Ini sama dengan menyetel flag 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 bila 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. Menyetel nilai ini akan menggantikan perilaku flag 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 didefinisikan dengan launchMode="standard". Jika atribut ini tidak ditetapkan, maka documentLaunchMode="none" akan digunakan.

android:enabled
Bisa atau tidaknya suatu aktivitas dibuat instance-nya oleh sistem — "true" kalau bisa, dan "false" jika tidak. Nilai default-nya adalah "true".

Elemen <application> memiliki atribut enabled sendiri yang diterapkan ke semua komponen aplikasi, termasuk aktivitas. Atribut <application> dan <activity> harus bernilai "true" (karena keduanya ditetapkan secara default) agar sistem bisa membuat instance aktivitas. Jika salah satunya bernilai "false", itu tidak dapat dibuat instance-nya.

android:excludeFromRecents
Bisa atau tidaknya tugas yang diawali aktivitas ini harus dikeluarkan dari daftar aplikasi yang baru saja digunakan, layar ringkasan. Artinya, ketika aktivitas ini adalah aktivitas akar dari tugas baru, atribut ini menentukan apakah tugas tersebut sebaiknya tidak ditampilkan dalam daftar aplikasi terbaru. Setel "true" jika tugas harus dikeluarkan dari daftar; setel "false" jika tugas harus dimasukkan. Nilai default-nya adalah "false".

android:exported
Elemen ini menetapkan bisa tidaknya diluncurkan oleh komponen dari aplikasi lain — "true" jika bisa, dan "false" jika tidak. Jika "false", aktivitas hanya bisa diluncurkan oleh komponen dari aplikasi yang sama atau aplikasi dengan ID pengguna yang sama.

Jika Anda menggunakan filter intent, Anda sebaiknya tidak menetapkan elemen "false" ini. Jika Anda melakukan hal itu, dan aplikasi mencoba memanggil aktivitas, sistem akan menampilkan ActivityNotFoundException. Sebaliknya, Anda harus mencegah aplikasi lain memanggil aktivitas dengan tidak menetapkan filter intent pada aplikasi tersebut.

Jika Anda tidak memiliki filter intent, nilai default untuk elemen ini adalah "false". Jika Anda menetapkan elemen "true", aktivitas dapat diakses ke aplikasi apa pun yang mengetahui nama class persis, namun tidak cocok ketika sistem mencoba mencocokkan intent yang implisit.

Atribut ini bukan satu-satunya cara untuk membatasi keterpaparan aktivitas untuk aplikasi lain. Anda juga bisa menggunakan izin untuk membatasi entitas eksternal yang dapat memanggil aktivitas (lihat atribut permission).

android:finishOnTaskLaunch
Perlu tidaknya instance aktivitas yang ada harus ditutup (selesai) setiap kali pengguna kembali menjalankan tugas (memilih tugas dilayar beranda) — "true" jika harus ditutup, dan "false" jika tidak. Nilai default-nya adalah "false".

Jika atribut ini dan allowTaskReparenting keduanya bernilai "true", atribut ini mengalahkan yang lainnya. Afinitas aktivitas diabaikan. Aktivitas tersebut tidak di-reparent, tapi dihancurkan.

android:hardwareAccelerated
Iya atau tidaknya rendering yang diakselerasi perangkat keras harus diaktifkan untuk Activity ini — "true" jika harus diaktifkan, dan "false" jika tidak. Nilai default-nya adalah "false".

Mulai dari Android 3.0, renderer OpenGL yang diakselerasi perangkat keras tersedia untuk aplikasi, untuk meningkatkan kinerja bagi banyak operasi grafis 2D umum. Ketika renderer yang diakselerasi perangkat keras diaktifkan, sebagian besar operasi di Canvas, Paint, Xfermode, ColorFilter, Shader, dan Kamera bertambah cepat. Ini menghasilkan animasi yang lebih halus, gulir lebih mulus, dan meningkatkan daya respons secara keseluruhan, bahkan untuk aplikasi yang tidak secara eksplisit menggunakan pustaka OpenGL kerangka kerja. Karena diperlukan sumber daya yang lebih besar agar bisa mengaktifkan akselerasi perangkat keras, aplikasi Anda akan menggunakan lebih banyak RAM.

Perhatikan bahwa tidak semua operasi OpenGL 2D diakselerasikan. Jika Anda mengaktifkan renderer yang diakselerasi perangkat keras, uji aplikasi Anda untuk memastikan bahwa itu bisa menggunakan renderer tanpa kesalahan.

android:icon
Ikon yang mewakili aktivitas. Ikon ditampilkan ke pengguna bila 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 disetel sebagai referensi untuk sumber daya dapat digambar yang berisi definisi gambar. Jika tidak disetel, ikon yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan (lihat elemen <application> atribut icon).

Ikon aktivitas — baik ditetapkan di sini atau oleh elemen <application> — adalah juga 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, bahkan jika mode imerdif diubah saat waktu proses dengan menggunakan metode setImmersive().
android:label
Label terbaca-pengguna untuk aktivitas tersebut. Label ditampilkan pada layar bila aktivitas harus ditunjukkan ke pengguna. Label tersebut sering kali ditampilkan bersama dengan ikon aktivitas.

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

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

Label harus ditetapkan sebagai referensi untuk sumber daya string, sehingga bisa dilokalkan seperti string lainnya dalam antarmuka pengguna. Namun, agar Anda lebih mudah saat mengembangkan aplikasi, label Anda dapat disetel sebagai string mentah.

android:launchMode
Instruksi tentang bagaimana aktivitas harus diluncurkan. Ada empat mode yang bekerja bersama dengan flag aktivitas (konstanta FLAG_ACTIVITY_*) di objek Intent untuk menentukan apa yang harus terjadi ketika aktivitas dipanggil untuk menangani intent. Mode-mode tersebut adalah:

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

Mode default-nya adalah "standard".

Seperti yang ditunjukkan pada tabel di bawah, mode-mode tersebut terdiri dari dua kelompok utama, dengan aktivitas "standard" dan "singleTop" di satu sisi, serta aktivitas "singleTask" dan "singleInstance" 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 tumpukan aktivitas. Biasanya, mereka diluncurkan ke tugas yang memanggil startActivity() (kecuali objek Intent berisi instruksi FLAG_ACTIVITY_NEW_TASK, dalam hal mana tugas yang berbeda dipilih — lihat atribut taskAffinity).

Sebaliknya, aktivitas "singleTask" dan "singleInstance" hanya bisa memulai sebuah tugas. Mode-mode tersebut selalu berada di akar tumpukan aktivitas. Selain itu, perangkat hanya bisa menyimpan satu instance aktivitas pada satu waktu — hanya satu tugas tersebut.

Mode "standard" dan "singleTop" berbeda satu sama lain hanya dalam satu hal: Setiap kali ada intent untuk aktivitas "standard", instance class 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. Akan tetapi, jika tugas target memiliki instance yang ada dari aktivitas di bagian atas tumpukan, 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, tapi tidak di bagian atas tumpukan, atau jika itu berada di bagian atas tumpukan, namun bukan di target tugas — instance baru akan dibuat dan mendorong tumpukan.

Demikian pula, jika Anda 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 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 dimunculkan dari tumpukan, dan instance baru dari aktivitas induk dibuat untuk menerima intent navigasi.

Mode "singleTask" dan "singleInstance" juga berbeda satu sama lain hanya dalam satu hal: Aktivitas "singleTask" mengizinkan aktivitas lain untuk menjadi bagian dari tugasnya. Aktivitas tersebut selalu berada di akar tugasnya, namun aktivitas lainnya (aktivitas "standard" dan "singleTop" yang diperlukan) bisa diluncurkan ke dalam tugas tersebut. Aktivitas "singleInstance", di sisi lain, tidak mengizinkan aktivitas lain untuk menjadi bagian dari tugasnya. Ini adalah satu-satunya aktivitas dalam tugas. Jika itu memulai aktivitas lain, aktivitas tersebut ditugaskan bagi tugas yang berbeda — seperti jika 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 situ.
"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 disarankan untuk penggunaan umum)
"singleTask" Tidak Sistem membuat aktivitas pada akar tugas baru dan mengarahkan intent ke situ. Namun, jika instance aktivitas sudah ada, sistem akan mengarahkan intent ke instance yang ada melalui panggilan ke metode onNewIntent(), bukan membuat instance baru.
"singleInstance" Tidak Sama seperti "singleTask", hanya saja sistem tidak meluncurkan aktivitas lain ke tugas yang menyimpan instance. Aktivitas akan selalu tunggal dan satu-satunya anggota tugasnya.

Seperti terlihat dalam tabel di atas, standard adalah mode default dan cocok untuk sebagian besar jenis aktivitas. SingleTop adalah mode peluncuran yang berguna dan banyak dipakai untuk berbagai jenis aktivitas. Mode lainnya — singleTask dan singleInstancetidak cocok untuk sebagian besar aplikasi, karena mereka 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 flag Intent, lihat dokumen Tugas dan Back-Stack.

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 berprivilese dapat berjalan dalam mode kunci tugas tanpa diizinkan, diberi akses, dan disetujui

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

Value Keterangan
"normal" Nilai default. Ini adalah nilai defaultnya. Tugas tidak meluncurkan ke dalam mode kunci tugas namun bisa ditempatkan di sana dengan memanggil startLockTask().
"never"

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

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

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

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

Catatan: Mode ini hanya tersedia untuk sistem dan aplikasi berprivilese. Aplikasi yang tidak berprivilese 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 membuang 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 letterbox 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, tetapkan 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 true, karena itu artinya aktivitas Anda mendukung ukuran apa pun.

Untuk informasi selengkapnya tentang atribut ini, lihat Mendukung Beberapa Layar.

android:multiprocess
Apakah sebuah instance aktivitas bisa diluncurkan ke dalam proses dari komponen yang memulai — "true" jika dapat, dan "false" jika tidak. Nilai default-nya adalah "false".

Biasanya, instance baru dari aktivitas diluncurkan ke dalam proses aplikasi yang mendefinisikan, 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 mereka digunakan (izin yang diberikan memungkinkan hal ini), sesuatu yang hampir tidak penting atau diperlukan sekali.

android:name
Nama class yang mengimplementasikan aktivitas, subclass dari Activity. Nilai atribut harus nama class yang memenuhi syarat (seperti, "com.example.project.ExtracurricularActivity"). Namun, sebagai penyingkat, jika karakter pertama dari nama tersebut adalah titik (misalnya, ".ExtracurricularActivity"), itu ditambahkan ke nama paket yang ditetapkan dalam elemen <manifest>.

Setelah menerbitkan aplikasi, Anda sebaiknya tidak mengubah nama ini (kecuali jika Anda telah menyetel android:exported="false").

Tidak ada nama default. Namanya harus ditentukan.

android:noHistory
Perlu tidaknya aktivitas sebaiknya dibuang dari tumpukan aktivitas dan diselesaikan (metodenya yang disebut finish()) ketika pengguna menjauhinya dan itu tidak lagi terlihat pada layar — "true" jika harus diselesaikan, dan "false" jika tidak. Nilai default-nya adalah "false".

Nilai "true" berarti bahwa aktivitas tersebut tidak akan meninggalkan jejak historis. Itu 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 pada 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 bilah aksi. Sistem ini juga bisa menggunakan informasi ini untuk menyatukan back-stack 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". Sebagai contoh:

<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 akar dari tugas menetapkan nilai atribut ini ke persistRootOnly, maka hanya aktivitas akar yang dipertahankan. Jika tidak, aktivitas yang lebih tinggi dari back-stack 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:

Value Keterangan
persistRootOnly Nilai default. Saat sistem memulai ulang, tugas aktivitas dipertahankan, namun hanya aktivitas akar dari intent peluncuran yang digunakan.

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

Catatan: Nilai atribut ini memengaruhi perilaku aplikasi Anda hanya jika nilai tersebut ditetapkan pada aktivitas akar aplikasi Anda.

persistAcrossReboots

Status aktivitas ini dipertahankan, bersama dengan status setiap aktivitas yang lebih tinggi dari back-stack yang memiliki atribut persistableMode yang disetel ke persistAcrossReboots. Jika suatu aktivitas tidak memiliki atribut persistableMode yang disetel ke persistAcrossReboots, atau jika diluncurkan menggunakan flag Intent.FLAG_ACTIVITY_NEW_DOCUMENT, maka aktivitas tersebut, bersama dengan semua aktivitas yang lebih tinggi dari back-stack, tidak dipertahankan.

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

Catatan: Nilai atribut ini memengaruhi perilaku aplikasi Anda bahkan jika nilai tersebut ditetapkan pada aktivitas selain aktivitas akar aplikasi Anda.

persistNever

Status aktivitas tidak dipertahankan.

Catatan: Nilai atribut ini memengaruhi perilaku aplikasi Anda hanya jika nilai tersebut ditetapkan pada aktivitas akar aplikasi Anda.

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 disetel, izin yang ditetapkan oleh elemen <application> atribut permission diterapkan untuk aktivitas tersebut. Jika tidak ada atribut yang disetel, aktivitas tersebut tidak dilindungi oleh izin.

Untuk informasi selengkapnya tentang izin, lihat bagian Izin dalam pengantar dan dokumen lainnya, Keamanan dan Izin.

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 bila perlu, Anda bisa mengganti nama proses default dengan atribut ini, sehingga Anda bisa menyebarkan komponen aplikasi di berbagai proses.

Jika nama yang ditetapkan ke atribut ini dimulai dengan titik dua (':'), proses baru, khusus untuk aplikasi, dibuat saat diperlukan dan aktivitas berjalan dalam proses tersebut. Jika nama proses dimulai dengan karakter huruf kecil, aktivitas akan berjalan dalam proses global dari nama tersebut, asalkan memiliki izin untuk melakukannya. Hal ini memungkinkan komponen dalam aplikasi yang berbeda menggunakan proses yang sama, mengurangi penggunaan resource.

Elemen <application> atribut process bisa menetapkan nama proses default yang berbeda untuk semua komponen.

android:relinquishTaskIdentity
Perlu tidaknya aktivitas melepaskan identifier tugas untuk 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 menyetel atribut ini ke "true" maka itu akan menghasilkan Intent dasar untuk setiap aktivitas yang diluncurkannya dalam tugas yang sama. Ini terus berlanjut untuk setiap aktivitas sampai menemukan aktivitas yang menyetel atribut ini ke "false". Nilai default-nya adalah "false".

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

resizeableActivity

Menentukan apakah aplikasi tersebut mendukung tampilan multi-jendela. Anda bisa menyetel atribut ini dalam elemen <activity> atau <application>.

Jika Anda menyetel atribut ini ke true, pengguna bisa meluncurkan aktivitas dalam layar terpisah dan mode bentuk bebas. Jika Anda menyetel atribut ke false, aktivitas tidak akan mendukung mode multi-jendela. Jika nilai ini false, dan pengguna berusaha memulai aktivitas dalam mode multi-jendela, aktivitas akan menggunakan layar penuh.

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

Atribut ini ditambahkan di API level 24.

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

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 antar perangkat.
"behind" Orientasi yang sama dengan aktivitas yang terletak persis 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 dalam API level 9.
"reversePortrait" Orientasi potret yang berlawanan arah dari potret normal. Ditambahkan dalam API level 9.
"sensorLandscape" Orientasi lanskap, namun bisa lanskap normal atau terbalik berdasarkan sensor perangkat. Sensor digunakan bahkan jika pengguna telah mengunci rotasi berbasis sensor. Ditambahkan dalam API level 9.
"sensorPortrait" Orientasi potret, namun bisa potret normal atau terbalik berdasarkan sensor perangkat. Sensor digunakan bahkan jika pengguna telah mengunci rotasi berbasis sensor. Ditambahkan dalam 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 bila pengguna memutar perangkat. Meskipun demikian, beberapa perangkat secara default tidak bisa berputar ke semua empat arah orientasi. Untuk mengizinkan semua empat arah orientasi, gunakan "fullSensor" Sensor digunakan bahkan jika 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 dalam 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: Bila Anda mendeklarasikan salah satu nilai lanskap atau potret, itu 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", maka aplikasi Anda hanya akan tersedia untuk perangkat yang mendukung orientasi lanskap. Namun, Anda juga harus secara eksplisit mendeklarasikan bahwa aplikasi Anda 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 dipasang bila perangkat mendukung orientasi tertentu saja.

android:showForAllUsers

Bisa atau tidaknya aktivitas ditampilkan saat pengguna perangkat saat ini 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 bisa dimatikan dan berhasil dimulai ulang tanpa menyimpan statusnya — "true" jika dapat dimulai ulang tanpa mengacu ke status sebelumnya, dan "false" jika memerlukan status sebelumnya. Nilai default-nya 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 disetel 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 tersebut bisa dimulai ulang saat tidak ada status yang dipertahankan. Misalnya, aktivitas yang menampilkan layar beranda menggunakan setelan ini untuk memastikan bahwa itu tidak dibuang jika mogok karena beberapa alasan.

supportsPictureInPicture

Menentukan apakah aktivitas mendukung tampilan Picture-in-Picture. Sistem mengabaikan atribut ini jika android:resizeableActivity bernilai false.

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

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 menyetel atribut ini untuk mengelompokkan mereka 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, setel ke string kosong.

Jika atribut ini tidak disetel, aktivitas akan mewarisi set afinitas yang ditetapkan untuk aplikasi (lihat elemen <application> atribut taskAffinity). Nama afinitas default untuk aplikasi adalah nama paket yang ditetapkan oleh elemen <manifest>.

android:theme
Sebuah referensi ke sumber daya model yang menetapkan tema keseluruhan untuk aktivitas tersebut. Ini secara otomatis menyetel 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 disetel, aktivitas mewarisi tema yang ditetapkan untuk aplikasi secara keseluruhan — dari elemen <application> atribut theme. Jika atribut tersebut juga tidak disetel, 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 nilai berikut.

NilaiKeterangan
"none"Tidak ada opsi UI tambahan. Ini adalah defaultnya.
"splitActionBarWhenNarrow"Menambahkan bilah di bagian bawah layar untuk menampilkan item aksi dalam bilah aplikasi (juga dikenal sebagai bilah aksi), bila dibatasi ruang horizontalnya (seperti saat mode potret pada ponsel). Sebagai ganti sejumlah kecil item aksi muncul di bilah aplikasi pada bagian atas layar, bilah aplikasi dibagi menjadi bagian navigasi atas dan bilah bawah untuk item aksi. Hal ini akan memastikan jumlah yang mencukupi dari ruang yang tersedia, tidak hanya untuk item aksi, melainkan juga untuk navigasi dan elemen judul pada bagian atas. Item menu tidak dibagi menjadi dua bilah; mereka selalu muncul bersama-sama.

Untuk informasi selengkapnya tentang bilah aplikasi, lihat class pelatihan Menambahkan Bilah Aplikasi.

Atribut ini ditambahkan di API level 14.

android:windowSoftInputMode
Bagaimana jendela utama aktivitas berinteraksi dengan jendela yang berisi keyboard virtual di layar. Setelan 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.

Setelan harus berupa salah satu nilai yang tercantum dalam tabel berikut, atau kombinasi dari satu nilai "state..." ditambah satu nilai "adjust...". Menyetel beberapa nilai dalam kedua grup — beberapa nilai "state...", misalnya — memiliki hasil tidak terdefinisi. Nilai-nilai individual dipisahkan oleh bilah vertikal (|). Sebagai contoh:

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

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

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

Ini adalah setelan 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 bila 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 bila jendela utama aktivitas memiliki fokus masukan.
"stateVisible" Keyboard virtual terlihat ketika situasinya tepat (ketika pengguna mengarah maju ke jendela utama aktivitas).
"stateAlwaysVisible" Keyboard virtual dibuat terlihat ketika pengguna memilih aktivitas — yaitu, ketika pengguna mengarah maju ke aktivitas, bukannya mundur ke dalamnya karena meninggalkan aktivitas lain.
"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 setelan 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 pada API Level 3.

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