- sintaksis:
<activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFromRecents=["true" | "false"] android:banner="drawable resource" android:clearTaskOnLaunch=["true" | "false"] android:colorMode=[ "hdr" | "wideColorGamut"] android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "screenLayout", "fontScale", "uiMode", "orientation", "density", "screenSize", "smallestScreenSize"] android:directBootAware=["true" | "false"] android:documentLaunchMode=["intoExisting" | "always" | "none" | "never"] android:enabled=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:immersive=["true" | "false"] android:label="string resource" android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance" | "singleInstancePerTask"] android:lockTaskMode=["normal" | "never" | "if_whitelisted" | "always"] android:maxRecents="integer" android:maxAspectRatio="float" android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:persistableMode=["persistRootOnly" | "persistAcrossReboots" | "persistNever"] android:permission="string" android:process="string" android:relinquishTaskIdentity=["true" | "false"] android:resizeableActivity=["true" | "false"] android:screenOrientation=["unspecified" | "behind" | "landscape" | "portrait" | "reverseLandscape" | "reversePortrait" | "sensorLandscape" | "sensorPortrait" | "userLandscape" | "userPortrait" | "sensor" | "fullSensor" | "nosensor" | "user" | "fullUser" | "locked"] android:showForAllUsers=["true" | "false"] android:stateNotNeeded=["true" | "false"] android:supportsPictureInPicture=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] > . . . </activity>
- terdapat dalam:
<application>
- dapat berisi:
<intent-filter>
<meta-data>
<layout>
- deskripsi:
- Mendeklarasikan suatu aktivitas (subclass
Activity
) yang mengimplementasikan bagian dari antarmuka pengguna visual aplikasi. Semua aktivitas harus diwakili oleh elemen<activity>
dalam file manifes. Apa pun yang tidak dideklarasikan tidak akan terlihat oleh sistem dan tidak akan dijalankan. - atribut:
android:allowEmbedded
-
Menunjukkan bahwa aktivitas bisa diluncurkan sebagai turunan yang disematkan dari aktivitas
lain. Khususnya dalam kasus saat turunan berada dalam sebuah kontainer
seperti Tampilan yang dimiliki oleh aktivitas lain. Misalnya, aktivitas
yang digunakan untuk notifikasi khusus Wear harus mendeklarasikannya sehingga
Wear bisa menampilkan aktivitas dalam aliran konteks, yang terletak
dalam proses lain.
Nilai default atribut ini adalah
false
. android:allowTaskReparenting
- Apakah aktivitas dapat berpindah dari tugas yang memulainya ke
tugas yang memiliki afinitas saat tugas tersebut selanjutnya dipindah ke
latar depan — "
true
" jika aktivitas dapat dipindah, dan "false
" jika harus tetap berada dengan tugas yang memulainya.Jika atribut ini tidak ditetapkan, nilai yang ditetapkan oleh atribut
allowTaskReparenting
yang sesuai dari elemen<application>
akan diterapkan untuk aktivitas. Nilai defaultnya adalah "false
".Biasanya saat suatu aktivitas dimulai, aktivitas tersebut terhubung dengan tugas aktivitas yang memulainya dan akan tetap di sana 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 berpindah ke tugas utama yang berkaitan dengan aplikasi tersebut.
Misalnya, jika pesan email berisi link ke halaman web, mengklik link akan memunculkan sebuah aktivitas yang bisa menampilkan halaman. Aktivitas tersebut didefinisikan oleh aplikasi browser, namun diluncurkan sebagai bagian dari tugas email. Jika di-reparent ke tugas browser, aktivitas akan ditampilkan ketika browser berikutnya muncul di latar depan, dan akan menghilang ketika tugas email muncul lagi ke depan.
Afinitas dari suatu aktivitas didefinisikan oleh atribut
taskAffinity
. Afinitas tugas ditentukan dengan membaca afinitas aktivitas root-nya. Karena itu, menurut definisi, aktivitas root selalu berada dalam tugas dengan afinitas yang sama. Karena aktivitas dengan mode peluncuran "singleTask
" atau "singleInstance
" hanya dapat berada di root tugas, reparent dibatasi pada mode "standard
" dan "singleTop
". (Lihat juga atributlaunchMode
.) android:alwaysRetainTaskState
- Apakah status dari tugas tempat aktivitas berada akan selalu
dipertahankan oleh sistem — "
true
" jika ya, dan "false
" jika sistem diperbolehkan untuk menetapkan ulang tugas ke status awalnya dalam situasi tertentu. Nilai defaultnya adalah "false
". Atribut ini hanya berguna untuk aktivitas root suatu tugas; akan diabaikan untuk semua aktivitas lainnya.Biasanya, sistem menghapus tugas (menghapus semua aktivitas dari tumpukan di atas aktivitas root) dalam situasi tertentu ketika pengguna memilih kembali tugas tersebut dari layar beranda. Biasanya, ini dilakukan jika pengguna tidak mengunjungi tugas untuk selang waktu tertentu, misalnya 30 menit.
Namun, jika atribut ini bernilai "
true
", pengguna akan selalu kembali ke tugas dalam status terakhirnya, dengan cara apa pun. Ini berguna, misalnya, dalam aplikasi seperti browser web ketika ada banyak keadaan (seperti beberapa tab terbuka) dan pengguna masih ingin memakainya. android:autoRemoveFromRecents
- Apakah tugas yang diluncurkan oleh aktivitas dengan atribut ini tetap berada di
layar ringkasan sampai aktivitas terakhir dalam
tugas diselesaikan. Jika
true
, tugasnya secara otomatis akan dihapus dari layar ringkasan. Menggantikan penggunaanFLAG_ACTIVITY_RETAIN_IN_RECENTS
oleh pemanggil. Harus berupa nilai boolean, "true
" atau "false
". android:banner
- Resource drawable
menyediakan banner grafis yang diperluas untuk item terkait. Gunakan dengan tag
<activity>
untuk menyediakan banner default bagi aktivitas tertentu, atau dengan tag<application>
untuk menyediakan banner bagi semua aktivitas aplikasi.Sistem menggunakan banner ini untuk merepresentasikan aplikasi di layar utama Android TV. Karena banner hanya ditampilkan di layar utama, banner hanya boleh ditentukan oleh aplikasi dengan aktivitas yang menangani intent
CATEGORY_LEANBACK_LAUNCHER
.Atribut ini harus ditetapkan sebagai referensi untuk resource drawable yang berisi gambar (misalnya
"@drawable/banner"
). Tidak ada banner default.Lihat Menyediakan banner layar utama pada Mulai Menggunakan Aplikasi TV untuk mengetahui informasi selengkapnya.
android:clearTaskOnLaunch
- Apakah semua aktivitas akan dihapus dari tugas, kecuali untuk
aktivitas root, ketika diluncurkan kembali dari layar 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 ini diabaikan untuk semua aktivitas lain dalam tugas.Jika bernilai "
true
", setiap kali pengguna memulai tugas lagi, mereka akan dibawa ke aktivitas root terlepas dari apa yang terakhir dilakukan dalam tugas dan apakah menggunakan tombol Kembali atau Beranda untuk meninggalkannya. Jika bernilai "false
", tugas bisa dihapus dari aktivitas dalam situasi tertentu (lihat atributalwaysRetainTaskState
), meskipun tidak selalu.Diibaratkankan, misalnya, seseorang meluncurkan aktivitas P dari layar utama, dan dari sana menuju aktivitas Q. Selanjutnya, pengguna menekan Beranda, lalu kembali ke aktivitas P. Biasanya, pengguna akan melihat aktivitas Q, karena hal itulah yang terakhir mereka lakukan dalam tugas P. Namun, jika P menetapkan tanda ini ke "
true
", semua aktivitas di atasnya (dalam hal ini Q) akan dihapus saat pengguna meluncurkan aktivitas P dari layar utama. Jadi, pengguna hanya akan melihat P ketika kembali ke tugas.Jika atribut ini dan
allowTaskReparenting
adalah "true
", semua aktivitas yang dapat di-reparent dipindahkan ke tugas yang memiliki kesamaan minat dengannya; aktivitas lainnya akan dihapus, seperti yang dijelaskan di atas.Atribut ini diabaikan jika
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
tidak ditetapkan. android:colorMode
Meminta aktivitas agar ditampilkan dalam mode gamut warna yang luas di perangkat yang kompatibel. Dalam mode gamut warna yang luas, jendela bisa merender di luar gamut
SRGB
untuk menampilkan warna yang lebih cerah. Jika perangkat tidak mendukung rendering gamut warna yang luas, atribut ini tidak akan memiliki pengaruh apa pun. Untuk informasi selengkapnya mengenai rendering dalam mode warna yang luas, lihat Meningkatkan Grafik dengan Konten Warna yang Luas.android:configChanges
- Mencantumkan perubahan konfigurasi bahwa aktivitas tersebut akan menangani dirinya sendiri. Ketika perubahan
konfigurasi terjadi pada runtime, aktivitas dimatikan dan dimulai ulang secara default, tetapi mendeklarasikan
konfigurasi dengan atribut ini akan mencegah aktivitas dimulai ulang. Sebaliknya,
aktivitas tetap berjalan dan metode
dipanggil.onConfigurationChanged()
Catatan: Gunakan atribut ini hanya dalam kasus khusus untuk meningkatkan performa dan responsivitas aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menangani perubahan konfigurasi.
Salah satu atau semua string berikut adalah nilai yang valid untuk atribut ini. Beberapa nilai dipisahkan dengan '
|
' — misalnya, "locale|navigation|orientation
".Nilai Deskripsi " density
"Kepadatan tampilan telah berubah — pengguna mungkin telah menentukan skala tampilan yang berbeda, atau tampilan yang berbeda mungkin aktif saat ini. Ditambahkan di API level 24
" fontScale
"Faktor penskalaan font telah berubah — pengguna telah memilih ukuran font global yang baru. " keyboard
"Tipe keyboard telah berubah — misalnya, pengguna telah mencolokkan keyboard eksternal. " keyboardHidden
"Aksesibilitas keyboard telah berubah — misalnya, pengguna menggunakan keyboard perangkat keras. " layoutDirection
"Arah layout telah berubah — Misalnya, berubah dari kiri-ke-kanan (LTR) menjadi kanan-ke-kiri (RTL). Ditambahkan di API level 17
" locale
"Lokalitas telah berubah — pengguna telah memilih bahasa teks baru yang harus ditampilkan. " mcc
"Kode negara seluler (MCC) IMSI telah berubah — SIM telah terdeteksi dan memperbarui MCC. " mnc
"Kode jaringan seluler (MNC) IMSI telah berubah — SIM telah terdeteksi dan memperbarui MNC. " navigation
"Tipe navigasi (trackball/dpad) telah berubah. (Ini biasanya jarang terjadi.) " orientation
"Orientasi layar telah berubah — pengguna telah memutar perangkat.
Catatan: Jika aplikasi Anda menargetkan Android 3.2 (API level 13) atau yang lebih tinggi, deklarasikan juga konfigurasi
"screenLayout"
dan"screenSize"
karena tata letak layar dan ukuran layar dapat berubah saat perangkat beralih antara orientasi potret dan lanskap." screenLayout
"Layout layar telah berubah — tampilan yang berbeda mungkin aktif saat ini. " screenSize
"Ukuran layar yang tersedia saat ini telah berubah. Ini mewakili perubahan ukuran yang tersedia saat ini, relatif terhadap rasio aspek saat ini, sehingga akan berubah ketika pengguna beralih antara lanskap dan potret.
Ditambahkan di API level 13
" smallestScreenSize
"Ukuran fisik layar telah berubah. Ini mewakili perubahan ukuran tanpa melihat orientasi, sehingga hanya akan berubah ketika ukuran layar fisik yang sebenarnya telah berubah, seperti beralih ke layar eksternal. Perubahan untuk konfigurasi ini sesuai dengan perubahan pada konfigurasi smallestWidth.
Ditambahkan di API level 13
" touchscreen
"Layar sentuh telah berubah. (Ini biasanya jarang terjadi.) " uiMode
"Mode antarmuka pengguna telah berubah — pengguna telah menempatkan perangkat ke meja atau dok mobil, atau mode malam telah berubah. Untuk informasi selengkapnya mengenai mode UI yang berbeda, lihat UiModeManager
.Ditambahkan di API level 8.
Semua perubahan konfigurasi ini bisa berdampak pada nilai sumber daya yang terlihat oleh aplikasi. Oleh karena itu, ketika dipanggil,
biasanya diperlukan untuk mengambil kembali semua resource (termasuk tata letak tampilan, drawable, dan sebagainya) agar bisa menangani perubahan dengan benar.onConfigurationChanged()
Catatan: Untuk menangani semua Multi-Aplikasi yang terkait perubahan konfigurasi, gunakan
"screenLayout"
dan"smallestScreenSize"
. Multi-Aplikasi didukung dalam Android 7.0 (API level 24) atau yang lebih tinggi. android:directBootAware
Apakah aktivitas direct-boot aware atau tidak; artinya, bisa tidaknya aktivitas tersebut berjalan sebelum pengguna membuka perangkat.
Catatan: Selama Direct Boot, suatu aktivitas dalam aplikasi Anda hanya bisa mengakses data yang disimpan dalam penyimpanan yang dilindungi perangkat.
Nilai default-nya adalah
"false"
.android:documentLaunchMode
- Menetapkan bagaimana instance baru dari sebuah aktivitas harus ditambahkan ke tugas setiap kali
diluncurkan. Atribut ini mengizinkan pengguna memiliki beberapa dokumen dari aplikasi
yang sama tampil dalam layar ringkasan.
Atribut tersebut memiliki empat nilai yang menghasilkan efek berikut saat pengguna membuka dokumen dengan aplikasi:
Nilai Deskripsi " intoExisting
"Sistem mencari tugas yang ComponentName
intent dasarnya dan URI data cocok dengan intent peluncuran. Jika sistem menemukan tugas seperti itu, sistem akan menghapus tugas, dan memulai ulang dengan aktivitas root yang menerima panggilan keonNewIntent(android.content.Intent)
. Jika sistem tidak menemukan tugas seperti itu, sistem membuat tugas baru." always
"Aktivitas ini membuat tugas baru untuk dokumen, meskipun dokumen sudah dibuka. Ini sama dengan menetapkan tanda FLAG_ACTIVITY_NEW_DOCUMENT
danFLAG_ACTIVITY_MULTIPLE_TASK
." none
"Aktivitas ini tidak membuat tugas baru untuk aktivitas. Ini adalah nilai default, yang membuat tugas baru hanya jika FLAG_ACTIVITY_NEW_TASK
telah ditetapkan. Layar ringkasan memperlakukan aktivitas seperti itu secara default: satu tugas ditampilkan untuk aplikasi, yang dilanjutkan dari aktivitas apa pun yang terakhir dipanggil pengguna." never
"Aktivitas ini tidak diluncurkan ke dalam dokumen baru meskipun Intent berisi FLAG_ACTIVITY_NEW_DOCUMENT
. Menetapkan nilai ini akan menggantikan perilaku ftandaFLAG_ACTIVITY_NEW_DOCUMENT
danFLAG_ACTIVITY_MULTIPLE_TASK
, jika salah satunya ditetapkan di aktivitas, dan layar ringkasan menampilkan satu tugas untuk aplikasi, yang melanjutkan dari aktivitas apa pun yang terakhir dipanggil pengguna.Catatan: Untuk nilai selain "
none
" dan "never
", aktivitas harus ditentukan denganlaunchMode="standard"
. Jika atribut ini tidak ditentukan,documentLaunchMode="none"
akan digunakan. android:enabled
- Apakah aktivitas dibuat instance-nya oleh sistem —
"true"
jika ya, dan "false
" jika tidak. Nilai defaultnya adalah "true
".Elemen
<application>
memiliki atributenabled
-nya sendiri yang berlaku untuk semua komponen aplikasi, termasuk aktivitas. Atribut<application>
dan<activity>
harus berupa "true
" (karena keduanya adalah setelan default) agar sistem dapat membuat instance aktivitas. Jika salah satunya adalah "false
", instance-nya tidak dapat dibuat. android:excludeFromRecents
- Apakah tugas yang diawali aktivitas ini harus dikeluarkan dari daftar aplikasi
yang baru saja digunakan,
layar ringkasan. Artinya, ketika aktivitas ini adalah aktivitas root dari tugas
baru, atribut ini menentukan apakah tugas tersebut sebaiknya tidak ditampilkan dalam daftar aplikasi terbaru. Tetapkan
"
true
" jika tugas harus dikecualikan dari daftar; tetapkan "false
" jika harus disertakan. Nilai defaultnya adalah "false
". android:exported
- Elemen ini menetapkan apakah aktivitas dapat diluncurkan oleh komponen aplikasi
lain:
- Jika "
true
", aktivitas dapat diakses oleh aplikasi apa pun, dan dapat diluncurkan oleh nama class persisnya. - Jika "
false
", aktivitas hanya dapat diluncurkan oleh komponen aplikasi yang sama, aplikasi dengan ID pengguna yang sama, atau komponen sistem dengan hak istimewa. Ini adalah nilai default saat tidak ada filter intent.
Jika suatu aktivitas di aplikasi Anda menyertakan filter intent, tetapkan elemen ini ke "
true
" agar aplikasi lain dapat memulainya. Misalnya, jika aktivitas tersebut adalah aktivitas utama aplikasi dan menyertakancategory
"android.intent.category.LAUNCHER
".Jika elemen ini disetel ke "
false
" dan aplikasi mencoba memulai aktivitas, sistem akan menampilkanActivityNotFoundException
.Atribut ini bukan satu-satunya cara untuk membatasi eksposur aktivitas untuk aplikasi lain. Izin juga dapat digunakan untuk membatasi entitas eksternal yang dapat memanggil aktivitas (lihat atribut
permission
). - Jika "
android:finishOnTaskLaunch
- Apakah instance aktivitas yang ada harus dimatikan atau tidak
(selesai), kecuali untuk aktivitas root, setiap kali pengguna kembali menjalankan tugasnya (memilih tugas di
layar utama) — "
true
" jika ya, dan "false
" jika tidak. Nilai defaultnya adalah "false
".Jika atribut ini dan
allowTaskReparenting
adalah "true
", atribut ini akan mengalahkan atribut yang lain. Afinitas aktivitas diabaikan. Aktivitas tersebut tidak di-reparent, tapi dihancurkan.Atribut ini diabaikan jika
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
tidak ditetapkan. android:hardwareAccelerated
- Apakah rendering dengan akselerasi hardware harus diaktifkan atau tidak untuk Aktivitas
ini — "
true
" jika harus diaktifkan, dan "false
" jika tidak. Nilai defaultnya adalah "false
".Mulai Android 3.0, perender OpenGL dengan akselerasi hardware tersedia untuk aplikasi, untuk meningkatkan performa bagi banyak operasi grafis 2D 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 akan mengonsumsi lebih banyak RAM.
Ingat bahwa tidak semua operasi 2D OpenGL dipercepat. Jika mengaktifkan perender yang diakselerasi hardware, uji aplikasi Anda untuk memastikan aplikasi dapat memanfaatkan perender tanpa error.
android:icon
- Ikon yang mewakili aktivitas. Ikon ditampilkan ke pengguna jika
perwakilan dari aktivitas diperlukan pada-layar. Misalnya, ikon
untuk aktivitas yang memulai tugas akan ditampilkan di jendela peluncur.
Ikon sering kali disertai dengan label (lihat atribut
android:label
).Atribut ini harus ditetapkan sebagai referensi ke resource drawable yang berisi definisi gambar. Jika tidak, ikon yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan sebagai gantinya (lihat atribut
icon
milik elemen<application>
).Ikon aktivitas — baik yang ditetapkan di sini atau oleh elemen
<application>
— juga merupakan ikon default untuk semua filter intent aktivitas (lihat atributicon
milik elemen<intent-filter>
). android:immersive
- Menetapkan pengaturan mode imersif untuk aktivitas saat ini. Jika atribut
android:immersive
ditetapkan menjaditrue
dalam entri manifes aplikasi untuk aktivitas ini, bitFLAG_IMMERSIVE
anggotaActivityInfo.flags
selalu sudah ditetapkan, meskipun mode imersif diubah saat waktu proses dengan menggunakan metodesetImmersive()
. android:label
- Label dapat dibaca oleh pengguna untuk aktivitas tersebut. Label ditampilkan pada layar
jika aktivitas harus ditunjukkan ke pengguna. Label tersebut sering kali ditampilkan bersama
dengan ikon aktivitas.
Jika atribut ini tidak ditetapkan, label yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan (lihat atribut
label
elemen<application>
).Label aktivitas — baik yang ditetapkan di sini atau oleh elemen
<application>
— juga merupakan label default untuk semua filter intent aktivitas (lihat atributlabel
milik elemen<intent-filter>
).Label harus ditetapkan sebagai referensi ke resource string, sehingga dapat dilokalkan seperti string lain pada antarmuka pengguna. Namun, untuk memudahkan Anda mengembangkan aplikasi, label ini juga dapat ditetapkan sebagai string mentah.
android:launchMode
- Petunjuk cara peluncuran aktivitas. Ada lima mode
yang bekerja sama dengan tanda aktivitas (konstanta
FLAG_ACTIVITY_*
) di objekIntent
untuk menentukan apa yang harus terjadi saat aktivitas dipanggil untuk menangani intent. Mode tersebut adalah:"
standard
"
"singleTop
"
"singleTask
"
"singleInstance
"
"singleInstancePerTask
"Mode default-nya adalah "
standard
".Seperti yang ditunjukkan pada tabel di bawah, mode tersebut terdiri dari dua grup utama, dengan aktivitas "
standard
" dan "singleTop
" di satu sisi, serta aktivitas "singleTask
", "singleInstance
", dan "singleInstancePerTask
" di sisi lainnya. Suatu aktivitas dengan mode peluncuran "standard
" atau "singleTop
" dapat dibuat instance-nya beberapa kali. Instance bisa menjadi milik setiap tugas dan bisa ditempatkan di mana saja dalam tugas aktivitas. Instance biasanya diluncurkan ke tugas yang memanggil
(kecuali jika objek Intent berisi instruksistartActivity()
, dengan tugas yang berbeda dipilih — lihat atribut taskAffinity).FLAG_ACTIVITY_NEW_TASK
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 saatFLAG_ACTIVITY_MULTIPLE_TASK
atauFLAG_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 tugastaskAffinity
yang sama. Sementara itu, perangkat hanya dapat menyimpan satu tugas untuk menemukan aktivitas “singleTask
" di root tugas aktivitas.Mode "
standard
" dan "singleTop
" berbeda satu sama lain hanya dalam satu hal: Setiap kali ada intent baru untuk aktivitas "standard
", instance baru dari class akan dibuat untuk merespons intent tersebut. Setiap instance menangani satu intent. Demikian pula, instance baru dari aktivitas "singleTop
" juga dapat dibuat untuk menangani intent baru. Namun, jika tugas target telah memiliki instance yang ada dari aktivitas di bagian atas stack, instance tersebut akan menerima intent baru (di panggilanonNewIntent()
); instance baru tidak dibuat. Dalam situasi yang lain — misalnya, jika instance dari aktivitas "singleTop
" berada dalam tugas target, tetapi tidak di bagian atas tumpukan, atau jika berada di bagian atas tumpukan, namun bukan di target tugas — instance baru akan dibuat dan mendorong tumpukan.Demikian pula, jika Anda menavigasi ke ataske aktivitas di tumpukan saat ini, perilaku ditentukan oleh mode peluncuran aktivitas induk. Jika aktivitas induk memiliki mode peluncuran
singleTop
(atau intentup
berisiFLAG_ACTIVITY_CLEAR_TOP
), induk dibawa ke puncak tumpukan, dan status tidak berubah. Intent navigasi diterima oleh metodeonNewIntent()
aktivitas induk. Jika aktivitas induk memiliki mode peluncuranstandard
(dan intentup
tidak berisiFLAG_ACTIVITY_CLEAR_TOP
), aktivitas saat ini dan induknya akan dikeluarkan dari stack, dan instance baru dari aktivitas induk akan dibuat untuk menerima intent navigasi.Mode "
singleInstance
" juga berbeda dari "singleTask
" dan "singleInstancePerTask
" hanya dalam satu hal: aktivitas dengan mode peluncuran "singleTask
" atau "singleInstancePerTask
" memungkinkan aktivitas lainnya (aktivitas "standard
" dan "singleTop
") menjadi bagian dari tugasnya. Di sisi lain, aktivitas "singleInstance
" tidak mengizinkan aktivitas lainnya menjadi bagian dari tugasnya; aktivitas ini harus menjadi satu-satunya aktivitas dalam tugas. Jika aktivitas ini memulai aktivitas lain, aktivitas tersebut akan ditetapkan ke tugas yang berbeda — seolah-olahFLAG_ACTIVITY_NEW_TASK
berada dalam intent.Kasus Penggunaan Mode Peluncuran Beberapa Instance? Komentar Peluncuran normal untuk sebagian besar aktivitas " standard
"Ya Default. Sistem selalu membuat instance baru dari aktivitas dalam tugas target dan mengarahkan intent ke instance tersebut. " singleTop
"Kondisional Jika sebuah instance aktivitas sudah ada di bagian atas tugas target, sistem akan mengarahkan intent ke instance tersebut melalui panggilan ke metode onNewIntent()
, bukannya membuat instance aktivitas yang baru.Peluncuran khusus
(tidak direkomendasikan untuk penggunaan umum)" singleTask
"Kondisional Sistem membuat aktivitas di root tugas baru atau menempatkan aktivitas pada tugas yang ada dengan afinitas yang sama. Jika instance aktivitas sudah ada dan berada di root tugas, sistem akan merutekan intent ke instance yang ada melalui panggilan ke metode onNewIntent()
, bukan membuat instance baru." singleInstance
"Tidak Sama seperti " singleTask"
, kecuali jika sistem tidak meluncurkan aktivitas lainnya ke tugas yang memiliki instance tersebut. Aktivitas akan selalu tunggal dan merupakan satu-satunya anggota tugasnya." singleInstancePerTask
"Kondisional Aktivitas hanya dapat berjalan sebagai aktivitas root tugas, aktivitas pertama yang membuat tugas. Oleh karena itu, hanya akan ada satu instance dari aktivitas ini dalam tugas; tetapi aktivitas dapat dibuat instance-nya beberapa kali dalam tugas yang berbeda. Seperti yang ditunjukkan dalam tabel di atas,
standard
adalah mode default dan sesuai untuk sebagian besar jenis aktivitas.SingleTop
juga merupakan mode peluncuran yang umum dan berguna untuk berbagai jenis aktivitas. Mode lainnya, yaitusingleTask
,singleInstance
, dansingleInstancePerTask
, tidak cocok untuk sebagian besar aplikasi, karena menghasilkan model interaksi yang mungkin asing bagi pengguna dan sangat berbeda dari kebanyakan aplikasi lain.Terlepas dari mode peluncuran yang Anda pilih, pastikan untuk menguji kegunaan aktivitas selama peluncuran dan ketika menavigasi kembali dari aktivitas dan tugas lain menggunakan tombol Kembali.
Untuk informasi selengkapnya tentang mode peluncuran dan interaksinya dengan tanda Intent, lihat dokumen Tugas dan Data Sebelumnya .
android:lockTaskMode
- Menentukan bagaimana sistem menghadirkan aktivitas ini ketika perangkat sedang berjalan dalam
mode kunci tugas.
Android dapat menjalankan tugas secara imersif, seperti kios yang disebut mode kunci tugas. Saat sistem berjalan dalam mode kunci tugas, pengguna perangkat biasanya tidak dapat melihat notifikasi, mengakses aplikasi yang tidak disetujui, atau kembali ke layar beranda (kecuali aplikasi Home yang disetujui). Hanya aplikasi yang sudah disetujui oleh pengendali kebijakan perangkat (DPC) yang dapat berjalan saat sistem berada dalam mode kunci tugas. Namun, sistem dan aplikasi dengan hak istimewa dapat berjalan dalam mode mengunci tugas tanpa memerlukan izin
Nilainya bisa berupa salah satu string
R.attr.lockTaskMode
berikut:Nilai Deskripsi "normal"
Nilai default. Nilai ini merupakan default. Tugas tidak diluncurkan ke dalam mode mengunci tugas namun bisa ditempatkan di sana dengan memanggil startLockTask()
."never"
Tugas tidak diluncurkan ke dalam mode mengunci tugas, dan pengguna perangkat tidak dapat memasang pin tugas ini dari layar ringkasan.
Catatan: Mode ini hanya tersedia untuk sistem dan aplikasi dengan hak istimewa. Aplikasi yang tidak memiliki hak istimewa dengan nilai ini diperlakukan sebagai
normal
."if_whitelisted"
Jika DPC mengizinkan paket ini menggunakan DevicePolicyManager.setLockTaskPackages()
, mode ini identik denganalways
, kecuali jika aktivitas harus memanggilstopLockTask()
sebelum bisa menyelesaikannya jika merupakan tugas yang terakhir dikunci. Jika DPC tidak mengizinkan paket ini, mode ini identik dengannormal
."always"
Tugas yang di-root pada aktivitas ini selalu meluncurkan ke dalam mode mengunci tugas. Jika sistem sudah berada dalam mode mengunci tugas saat tugas ini diluncurkan, tugas baru diluncurkan di atas tugas saat ini. Tugas yang diluncurkan dalam mode ini dapat keluar dari mode mengunci tugas dengan memanggil
finish()
.Catatan: Mode ini hanya tersedia untuk sistem dan aplikasi dengan hak istimewa. Aplikasi yang tidak memiliki hak istimewa dengan nilai ini diperlakukan sebagai
normal
.Atribut ini diperkenalkan pada API Level 23.
android:maxRecents
- Jumlah maksimum tugas yang di-root pada aktivitas ini dalam layar ringkasan. Ketika jumlah entri tercapai, sistem menghapus instance yang paling jarang digunakan dari layar ringkasan. Nilai yang valid adalah 1 sampai 50 (25 pada perangkat dengan memori rendah); nol tidak valid. Ini harus berupa nilai integer, seperti 50. Nilai default-nya adalah 16.
android:maxAspectRatio
Rasio aspek maksimum yang didukung aktivitas. Jika aplikasi berjalan pada perangkat yang rasio aspeknya lebih lebar, sistem akan secara otomatis memberi tampilan lebar aplikasi tersebut, sehingga sebagian layar tidak terpakai dan aplikasi bisa berjalan pada rasio aspek maksimum yang ditetapkan.
Rasio aspek maksimum dinyatakan sebagai bentuk desimal dari hasil bagi perangkat yang lebih panjang dibagi dengan dimensi lebih pendek. Misalnya, jika rasio aspek maksimumnya 7:3, setel nilai atribut ini menjadi 2,33.
Pada perangkat non-wearable, nilai atribut ini harus 1,33 atau lebih besar. Pada perangkat wearable, nilai atribut harus 1,0 atau lebih besar. Jika tidak, sistem mengabaikan nilai yang ditetapkan.
Catatan: Atribut ini diabaikan jika aktivitas menyetel
resizeableActivity
ke benar (true), karena hal tersebut berarti aktivitas Anda mendukung ukuran apa pun.Untuk mengetahui informasi selengkapnya tentang atribut ini, lihat Mendeklarasikan rasio lebar tinggi maksimum di Mendeklarasikan dukungan layar terbatas.
android:multiprocess
- Apakah instance aktivitas dapat diluncurkan ke dalam proses komponen
yang memulainya — "
true
" jika ya, dan "false
" jika tidak. Nilai defaultnya adalah "false
".Biasanya, instance baru dari aktivitas diluncurkan ke dalam proses aplikasi yang menentukannya, sehingga semua instance aktivitas berjalan dalam proses yang sama. Namun, jika flag ini disetel ke "
true
", instance aktivitas bisa berjalan di beberapa proses, memungkinkan sistem untuk membuat instance di mana pun digunakan (izin yang diberikan memungkinkan hal ini), sesuatu yang hampir tidak penting atau diperlukan. android:name
- Nama class yang mengimplementasikan aktivitas, subclass dari
Activity
. Nilai atribut harus berupa nama class yang sepenuhnya memenuhi syarat (seperti, "com.example.project.ExtracurricularActivity
"). Namun, sebagai singkatan, jika karakter pertama dari nama tersebut adalah titik (misalnya, ".ExtracurricularActivity
"), ini ditambahkan ke namespace yang ditentukan dalam filebuild.gradle
.Setelah memublikasikan aplikasi, Anda tidak boleh mengubah nama ini (kecuali Anda telah menetapkan
android:exported="false"
).Tidak ada default untuknya. Nama ini harus ditetapkan.
android:noHistory
- Apakah aktivitas harus dihapus dari tumpukan aktivitas dan
selesai (panggilan metode
-nya) ketika pengguna memilih keluar dan tidak lagi terlihat di layar — "finish()
true
" jika seharusnya selesai, dan "false
" jika tidak demikian. Nilai defaultnya adalah "false
".Nilai "
true
" berarti aktivitas tidak akan meninggalkan jejak historis. Ini tidak akan tetap berada dalam tumpukan aktivitas tugas, sehingga pengguna tidak akan bisa kembali ke sana. Dalam hal ini,onActivityResult()
tidak pernah dipanggil jika Anda memulai aktivitas lain sebagai akibat dari aktivitas ini.Atribut ini diperkenalkan di API Level 3.
android:parentActivityName
- Nama class induk logis dari aktivitas. Nama yang ada di sini harus cocok dengan nama
class yang diberikan ke
atribut
android:name
milik elemen<activity>
yang sesuai.Sistem akan membaca atribut ini untuk menentukan aktivitas yang harus dimulai ketika pengguna menekan tombol Naik di panel tindakan. Sistem ini juga bisa menggunakan informasi ini untuk menyatukan data sebelumnya aktivitas dengan
TaskStackBuilder
.Untuk mendukung API level 4 - 16, Anda juga bisa mendeklarasikan aktivitas induk dengan elemen
<meta-data>
yang menetapkan nilai untuk"android.support.PARENT_ACTIVITY"
. Misalnya:<activity android:name="com.example.app.ChildActivity" android:label="@string/title_child_activity" android:parentActivityName="com.example.app.MainActivity" > <!-- Parent activity meta-data to support API level 4+ --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.app.MainActivity" /> </activity>
Untuk informasi selengkapnya tentang mendeklarasikan aktivitas induk untuk mendukung navigasi Naik, baca Menyediakan Navigasi Naik.
Atribut ini diperkenalkan pada API Level 16.
android:persistableMode
Menentukan bagaimana instance aktivitas dipertahankan dalam tugas yang berisi seluruh perangkat dimulai ulang.
Jika aktivitas root dari tugas menetapkan nilai atribut ini ke
persistRootOnly
, hanya aktivitas root yang dipertahankan. Jika tidak, aktivitas yang lebih tinggi dari data sebelumnya tugas diperiksa; salah satu dari aktivitas yang menetapkan nilai atribut ini kepersistAcrossReboots
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 gunakanonSaveInstanceState()
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 kepersistAcrossReboots
. Jika suatu aktivitas tidak memiliki atributpersistableMode
yang ditetapkan kepersistAcrossReboots
, atau jika diluncurkan menggunakan tandaIntent.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 kepersistAcrossReboots
di aplikasi Anda, aktivitas menerima objekPersistableBundle
di metodeonCreate()
. Oleh karena itu, Anda dapat menggunakanonSaveInstanceState()
untuk mempertahankan status aktivitas jika perangkat dimulai ulang selama atributpersistableMode
ditetapkan kepersistAcrossReboots
.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
ataustartActivity()
belum mendapatkan izin yang ditetapkan, intent-nya tidak akan dikirimkan ke aktivitas.startActivityForResult()
Jika atribut ini tidak ditetapkan, izin yang ditetapkan oleh elemen
<application>
atributpermission
diterapkan untuk aktivitas tersebut. Jika tidak ada atribut yang ditetapkan, aktivitas tersebut tidak dilindungi oleh izin.Untuk informasi selengkapnya mengenai izin, lihat bagian Izin di bagian Keamanan dan Izin di pengantar dan dokumen lainnya.
android:process
- Nama proses tempat aktivitas harus berjalan. Biasanya, semua komponen
aplikasi berjalan dalam nama proses default yang dibuat untuk aplikasi dan Anda
tidak perlu menggunakan atribut ini. Namun jika perlu, Anda bisa mengganti nama proses
default dengan atribut ini, sehingga Anda bisa menyebarkan komponen aplikasi di
berbagai proses.
Jika nama yang ditetapkan untuk atribut ini diawali dengan titik dua (':'), proses baru, yang bersifat pribadi untuk aplikasi, akan dibuat saat diperlukan dan aktivitas akan berjalan dalam proses tersebut. Jika nama proses dimulai dengan karakter huruf kecil, aktivitas akan berjalan pada proses global dari nama tersebut, jika memiliki izin untuk melakukannya. Hal ini memungkinkan komponen dalam aplikasi yang berbeda untuk berbagi proses, sehingga mengurangi penggunaan resource.
Atribut
process
elemen<application>
dapat menetapkan nama proses default yang berbeda untuk semua komponen. android:relinquishTaskIdentity
- Apakah aktivitas melepaskan ID tugas untuk aktivitas di atasnya dalam
tumpukan tugas. Tugas yang aktivitas root-nya menetapkan atribut ini ke "
true
" menggantikan Intent dasar dengan hal tersebut dari aktivitas berikutnya dalam tugas. Jika aktivitas berikutnya juga menetapkan atribut ini ke "true
", maka akan menghasilkan Intent dasar untuk setiap aktivitas yang diluncurkannya dalam tugas yang sama. Ini terus berlanjut untuk setiap aktivitas sampai menemukan aktivitas yang menetapkan atribut ini ke "false
". Nilai defaultnya adalah "false
".Atribut yang ditetapkan ke "
true
" ini juga mengizinkan penggunaanActivityManager.TaskDescription
aktivitas untuk mengubah label, warna, dan ikon di layar ringkasan. resizeableActivity
-
Menentukan apakah aplikasi mendukung mode multi-aplikasi. Anda dapat menetapkan atribut ini baik dalam elemen
<activity>
atau elemen<application>
.Jika Anda menetapkan atribut ini ke true, pengguna dapat meluncurkan aktivitas dalam mode layar terpisah dan format bebas. Jika Anda menyetel atribut ke salah (false), aplikasi tidak dapat diuji atau dioptimalkan untuk lingkungan multi-aplikasi. Sistem masih dapat menempatkan aktivitas dalam mode multi-aplikasi dengan mode kompatibilitas yang diterapkan. Menyetel atribut ini ke benar (true) juga tidak menjamin bahwa tidak akan ada aplikasi lain dalam mode multi-aplikasi yang terlihat di layar (seperti picture-in-picture) atau di tampilan lain. Oleh karena itu, menetapkan tanda ini tidak memastikan aplikasi Anda memiliki akses resource eksklusif.
Jika aplikasi menargetkan API level 24 atau yang lebih tinggi, tetapi Anda tidak menetapkan nilai untuk atribut ini, nilai atribut akan ditetapkan secara default ke true.
Jika aplikasi Anda menargetkan API level 31 atau yang lebih tinggi, atribut ini berfungsi secara berbeda pada layar kecil dan besar:
- Layar besar (sw >= 600dp): Semua aplikasi mendukung mode multi-aplikasi. Atribut ini menunjukkan
apakah aplikasi dapat diubah ukurannya (bukan apakah aplikasi mendukung mode multi-aplikasi). Jika
resizeableActivity="false"
, aplikasi dialihkan ke mode kompatibilitas saat diperlukan agar sesuai dengan dimensi tampilan. - Layar kecil (sw < 600 dp): Jika
resizeableActivity="true"
serta lebar dan tinggi minimum aktivitas berada dalam persyaratan multi-aplikasi, aplikasi akan mendukung mode multi-aplikasi. JikaresizeableActivity="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.
- 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
android:screenOrientation
- Orientasi tampilan aktivitas pada perangkat. Sistem mengabaikan
atribut ini jika aktivitas tersebut berjalan dalam mode multi-aplikasi.
Nilainya bisa berupa salah satu string berikut:
" unspecified
"Nilai default. Sistem memilih orientasi. Kebijakan yang digunakan, serta pilihan yang dibuat dalam konteks tertentu, mungkin berbeda antarperangkat. " behind
"Orientasi yang sama dengan aktivitas yang terletak persis di bawahnya dalam tumpukan aktivitas. " landscape
"Orientasi lanskap (lebar tampilan lebih panjang daripada tingginya). " portrait
"Orientasi potret (tinggi tampilan lebih panjang daripada lebarnya). " reverseLandscape
"Orientasi lanskap yang berlawanan arah dari lanskap normal. Ditambahkan di API level 9. " reversePortrait
"Orientasi potret yang berlawanan arah dari potret normal. Ditambahkan di API level 9. " sensorLandscape
"Orientasi lanskap, namun bisa lanskap normal atau terbalik berdasarkan sensor perangkat. Sensor digunakan meskipun pengguna telah mengunci rotasi berbasis sensor. Ditambahkan di API level 9. " sensorPortrait
"Orientasi potret, namun bisa potret normal atau terbalik berdasarkan sensor perangkat. Sensor digunakan meskipun pengguna telah mengunci rotasi berbasis sensor. 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
"Orientasi ditentukan berdasarkan sensor orientasi perangkat. Orientasi tampilan tergantung bagaimana pengguna memegang perangkat; orientasi akan berubah jika pengguna memutar perangkat. Meskipun demikian, beberapa perangkat secara default tidak bisa berputar ke keempat orientasi. Untuk mengizinkan keempat orientasi, gunakan "fullSensor"
Sensor digunakan meskipun pengguna mengunci rotasi berbasis sensor." fullSensor
"Orientasi ditentukan berdasarkan sensor orientasi perangkat untuk setiap 4 orientasi. Ini serupa dengan "sensor"
kecuali hal ini memungkinkan 4 orientasi layar ke semua arah, terlepas dari yang biasanya perangkat lakukan (misalnya, beberapa perangkat biasanya tidak menggunakan potret terbalik atau lanskap terbalik, namun ini mengaktifkannya). Ditambahkan di API level 9." nosensor
"Orientasi ditetapkan tanpa mengacu pada sensor orientasi fisik. Sensor diabaikan, sehingga tampilan tidak akan berputar berdasar pada bagaimana pengguna menggerakkan perangkat. " user
"Orientasi yang saat ini disukai pengguna. " fullUser
"Jika pengguna telah mengunci rotasi berbasis sensor, ini berperilaku sama seperti user
, jika tidak, ini berperilaku sama sepertifullSensor
dan memungkinkan setiap 4 orientasi layar ke semua arah. Ditambahkan dalam API level 18." locked
"Mengunci orientasi ke rotasi saat ini, apa pun itu. Ditambahkan dalam API level 18. Catatan: Jika Anda mendeklarasikan salah satu nilai lanskap atau potret, ini dianggap sebagai persyaratan sulit untuk orientasi tempat aktivitas dijalankan. Dengan begitu, nilai yang Anda deklarasikan mengaktifkan pemfilteran oleh layanan seperti Google Play sehingga aplikasi hanya tersedia untuk perangkat yang mendukung orientasi yang dibutuhkan oleh aktivitas Anda. Misalnya, jika Anda mendeklarasikan
"landscape"
,"reverseLandscape"
, atau"sensorLandscape"
, aplikasi Anda hanya akan tersedia untuk perangkat yang mendukung orientasi lanskap. Namun, Anda juga harus secara eksplisit mendeklarasikan bahwa aplikasi memerlukan orientasi potret atau lanskap dengan elemen<uses-feature>
. Misalnya,<uses-feature android:name="android.hardware.screen.portrait"/>
. Ini hanyalah perilaku pemfilteran yang disediakan oleh Google Play (dan layanan lain yang mendukungnya) dan platform tidak mengontrol apakah aplikasi Anda bisa diinstal jika perangkat mendukung orientasi tertentu saja. android:showForAllUsers
-
Apakah aktivitas ditampilkan saat pengguna saat ini perangkat berbeda dari pengguna yang meluncurkan aktivitas. Anda bisa menetapkan atribut ini ke nilai literal—
"true"
atau"false"
—atau Anda bisa menetapkan atribut ke resource atau atribut tema yang berisi nilai boleean.Atribut ini ditambahkan di API level 23.
android:stateNotNeeded
- Apakah aktivitas dapat dihentikan dan berhasil dimulai ulang
tanpa menyimpan statusnya — "
true
" jika dapat dimulai ulang tanpa merujuk ke status sebelumnya, dan "false
" jika status sebelumnya diperlukan. Nilai defaultnya adalah "false
".Biasanya, sebelum suatu aktivitas dimatikan sementara untuk menghemat resource, metode
akan dipanggil. Metode ini menyimpan status aktivitas saat ini di objekonSaveInstanceState()
Bundle
, yang kemudian diteruskan ke
ketika aktivitas dimulai ulang. Jika atribut ini ditetapkan ke "onCreate()
true
",onSaveInstanceState()
mungkin tidak dipanggil danonCreate()
akan diteruskannull
, bukan Bundle — seperti ketika aktivitas dijalankan untuk pertama kalinya.Setelan "
true
" memastikan bahwa aktivitas dapat dimulai ulang tanpa status dipertahankan. Misalnya, aktivitas yang menampilkan layar utama menggunakan setelan ini untuk memastikan bahwa aktivitas tidak dihapus jika bermasalah karena beberapa alasan. supportsPictureInPicture
-
Menentukan apakah aktivitas mendukung tampilan Picture-in-Picture.
Atribut ini ditambahkan di API level 24.
android:taskAffinity
- Tugas yang memiliki afinitas dengan aktivitas. Aktivitas dengan
afinitas yang sama secara konseptual menjadi milik tugas yang sama (untuk "aplikasi"
yang sama dari perspektif pengguna). Afinitas tugas
ditentukan oleh afinitas aktivitas root-nya.
Afinitas menetapkan dua hal — tugas yang di-reparent aktivitas (lihat atribut
allowTaskReparenting
) dan tugas yang akan menjadi tempat bagi aktivitas ketika diluncurkan dengan 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
elemen<application>
). Nama afinitas default untuk aplikasi adalah namespace yang ditetapkan dalam filebuild.gradle
. android:theme
- Sebuah referensi ke sumber daya model yang menetapkan tema keseluruhan untuk aktivitas tersebut.
Ini secara otomatis menetapkan konteks aktivitas untuk menggunakan tema ini (lihat
, dan juga bisa menyebabkan animasi "mulai" sebelum aktivitas dijalankan (agar lebih cocok dengan tampilan aktivitas sebenarnya).setTheme()
Jika atribut ini tidak ditetapkan, aktivitas mewarisi tema yang ditetapkan untuk aplikasi secara keseluruhan — dari atribut
theme
elemen<application>
. Jika atribut tersebut juga tidak ditetapkan, tema sistem default akan digunakan. Untuk informasi selengkapnya, lihat panduan developer Gaya dan Tema. android:uiOptions
- Opsi tambahan untuk UI aktivitas.
Harus berupa salah satu dari nilai berikut.
Nilai Deskripsi "none"
Tidak ada opsi UI tambahan. Ini adalah defaultnya. "splitActionBarWhenNarrow"
Tambahkan panel di bagian bawah layar untuk menampilkan item tindakan pada panel aplikasi (juga dikenal sebagai panel tindakan), saat dibatasi untuk ruang horizontal (misalnya saat mode potret pada handset). Daripada menampilkan sejumlah kecil item tindakan di panel aplikasi di bagian atas layar, panel aplikasi dibagi menjadi dua bagian, panel navigasi atas dan panel bawah untuk item tindakan. Ini memastikan jumlah ruang yang wajar tersedia bukan hanya untuk item tindakan, tetapi juga untuk elemen navigasi dan judul di bagian atas. Item menu tidak dibagi di dua panel; selalu muncul menjadi satu bagian. Untuk informasi selengkapnya tentang panel aplikasi, lihat kelas pelatihan Menambahkan Panel Aplikasi.
Atribut ini ditambahkan di API level 14.
android:windowSoftInputMode
- Bagaimana jendela utama aktivitas berinteraksi dengan jendela yang berisi
keyboard virtual di layar. Penetapan untuk atribut ini memengaruhi dua
hal:
- Status keyboard virtual — apakah tersembunyi atau terlihat — ketika aktivitas menjadi fokus perhatian pengguna.
- Penyesuaian yang dilakukan bagi jendela utama aktivitas — apakah ukurannya diperkecil untuk memberikan ruang bagi keyboard virtual atau apakah materinya digeser agar fokus tampilan tetap terlihat ketika sebagian jendela tertutup oleh keyboard virtual.
Penetapan harus berupa salah satu nilai yang tercantum dalam tabel berikut, atau kombinasi dari satu nilai "
state...
" ditambah satu nilai "adjust...
". Menetapkan beberapa nilai di salah satu grup — misalnya beberapa nilai "state...
", — memiliki hasil yang tidak ditentukan. Nilai individual dipisahkan oleh batang vertikal (|
). Misalnya:<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
Nilai yang ditetapkan di sini (selain "
stateUnspecified
" dan "adjustUnspecified
" ) menggantikan nilai yang ditetapkan dalam tema.Nilai Deskripsi " stateUnspecified
"Status keyboard virtual (apakah tersembunyi atau terlihat) tidak ditetapkan. Sistem akan memilih status yang tepat atau bergantung pada setelan dalam temanya. Ini adalah penetapan default untuk perilaku keyboard virtual.
" stateUnchanged
"Keyboard virtual disimpan apa pun status terakhirnya, apakah terlihat atau tersembunyi, ketika aktivitas muncul ke depan. " stateHidden
"Keyboard virtual akan disembunyikan jika pengguna memilih aktivitas — yaitu ketika pengguna dengan tegas mengarah maju ke aktivitas, daripada mundur ke dalamnya karena meninggalkan aktivitas lain. " stateAlwaysHidden
"Keyboard virtual selalu disembunyikan jika jendela utama aktivitas memiliki fokus input. " stateVisible
"Keyboard virtual dibuat terlihat ketika pengguna memilih aktivitas — yaitu, ketika pengguna mengarah maju ke aktivitas, bukannya mundur ke dalamnya karena meninggalkan aktivitas lain. " stateAlwaysVisible
"Keyboard virtual terlihat saat jendela menerima fokus input. " adjustUnspecified
"Tidak menetapkan apakah jendela utama aktivitas ini berubah ukuran agar tersedia ruang bagi keyboard virtual, atau materi jendela digeser agar fokus aktif terlihat di layar. Sistem akan secara otomatis memilih salah satu mode ini tergantung pada apakah materi jendela memiliki tampilan layout yang bisa menggulir materinya. Jika ada tampilan seperti itu, jendela akan diubah ukurannya, dengan asumsi bahwa menggulir bisa membuat semua materi jendela terlihat dalam area yang lebih kecil. Ini adalah pengaturan default untuk perilaku jendela utama.
" adjustResize
"Jendela utama aktivitas selalu diubah ukurannya agar tersedia ruang bagi keyboard virtual di layar. " adjustPan
"Jendela utama aktivitas tidak diubah ukurannya untuk membuat ruang bagi keyboard virtual. Sebaliknya, materi jendela secara otomatis akan digeser sehingga fokus aktif tidak terhalang oleh keyboard dan pengguna bisa melihat apa yang mereka ketik. Ini biasanya kurang diminati dibandingkan mengubah ukuran, karena pengguna mungkin perlu menutup keyboard virtual untuk bisa berinteraksi dengan bagian jendela yang terhalang. Atribut ini diperkenalkan di API Level 3.
- diperkenalkan di:
- API Level 1 untuk semua atribut kecuali
noHistory
danwindowSoftInputMode
, yang ditambahkan dalam API Level 3. - lihat juga:
<application>
<activity-alias>
Konten dan contoh kode di halaman ini tunduk pada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2023-03-08 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Informasi yang saya butuhkan tidak ada"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Terlalu rumit/langkahnya terlalu banyak"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Sudah usang"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Masalah terjemahan"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Masalah kode / contoh"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Lainnya"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Mudah dipahami"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Memecahkan masalah saya"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Lainnya"
}]