- sintaksis:
<activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFromRecents=["true" | "false"] android:banner="drawable resource" android:canDisplayOnRemoteDevices=["true" | "false"] android:clearTaskOnLaunch=["true" | "false"] android:colorMode=[ "hdr" | "wideColorGamut"] android:configChanges=["colorMode", "density", "fontScale", "fontWeightAdjustment", "grammaticalGender", "keyboard", "keyboardHidden", "layoutDirection", "locale", "mcc", "mnc", "navigation", "orientation", "screenLayout", "screenSize", "smallestScreenSize", "touchscreen", "uiMode"] android:directBootAware=["true" | "false"] android:documentLaunchMode=["intoExisting" | "always" | "none" | "never"] android:enabled=["true" | "false"] android:enabledOnBackInvokedCallback=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:immersive=["true" | "false"] android:label="string resource" android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance" | "singleInstancePerTask"] android:lockTaskMode=["normal" | "never" | "if_whitelisted" | "always"] android:maxRecents="integer" android:maxAspectRatio="float" android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:persistableMode=["persistRootOnly" | "persistAcrossReboots" | "persistNever"] android:permission="string" android:process="string" android:relinquishTaskIdentity=["true" | "false"] android:requireContentUriPermissionFromCaller=["none" | "read" | "readAndWrite" | "readOrWrite" | "write"] android:resizeableActivity=["true" | "false"] android:screenOrientation=["unspecified" | "behind" | "landscape" | "portrait" | "reverseLandscape" | "reversePortrait" | "sensorLandscape" | "sensorPortrait" | "userLandscape" | "userPortrait" | "sensor" | "fullSensor" | "nosensor" | "user" | "fullUser" | "locked"] android:showForAllUsers=["true" | "false"] android:stateNotNeeded=["true" | "false"] android:supportsPictureInPicture=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] > ... </activity>
- terdapat dalam:
<application>
- dapat berisi:
<intent-filter>
<meta-data>
<layout>
- deskripsi:
- Mendeklarasikan suatu aktivitas (subclass
Activity
) yang mengimplementasikan bagian dari antarmuka pengguna visual aplikasi. Semua aktivitas harus diwakili oleh elemen<activity>
dalam file manifes. Apa pun yang tidak dideklarasikan tidak akan terlihat oleh sistem dan tidak pernah dijalankan. - atribut:
android:allowEmbedded
-
Menunjukkan bahwa aktivitas bisa diluncurkan sebagai turunan yang disematkan dari aktivitas lain aktivitas anak, khususnya jika anak berada dalam kontainer, seperti
Display
yang dimiliki oleh aktivitas lain. Misalnya, aktivitas yang digunakan untuk notifikasi khusus Wear mendeklarasikannya sehingga Wear bisa menampilkan aktivitas dalam aliran konteksnya, yang terletak dalam proses lain.Nilai default atribut ini adalah
false
. android:allowTaskReparenting
- Apakah aktivitas dapat berpindah dari tugas yang memulainya ke
tugas yang memiliki afinitas saat tugas tersebut selanjutnya dipindah ke
latar depan. Nilainya
"true"
jika dapat berpindah, dan"false"
jika tetap dengan tugas yang memulainya.Jika atribut ini tidak ditetapkan, nilai yang ditetapkan oleh atribut
allowTaskReparenting
yang sesuai dari elemen<application>
akan diterapkan untuk aktivitas. Nilai defaultnya adalah"false"
.Biasanya, saat suatu aktivitas dimulai, aktivitas tersebut terhubung dengan tugas aktivitas yang memulainya dan akan tetap di sana sepanjang waktu. Anda dapat menggunakan atribut ini untuk memaksanya agar di-reparent ke tugas yang memiliki afinitas saat tugas saat ini tidak lagi ditampilkan. Biasanya, atribut tersebut digunakan untuk membuat aktivitas aplikasi bergerak ke tugas utama yang berkaitan dengan aplikasi tersebut.
Misalnya, jika pesan email berisi link ke halaman web, mengklik link akan memunculkan sebuah aktivitas yang bisa menampilkan halaman. Aktivitas tersebut didefinisikan oleh aplikasi browser, namun diluncurkan sebagai bagian dari tugas email. Jika di-reparent ke tugas browser, aktivitas akan ditampilkan saat browser berikutnya muncul di latar depan, dan akan menghilang ketika tugas email muncul lagi ke depan.
Afinitas dari suatu aktivitas didefinisikan oleh atribut
taskAffinity
. Afinitas tugas ditentukan dengan membaca afinitas aktivitas root-nya. Karena itu, menurut definisi, aktivitas root selalu berada dalam tugas dengan afinitas yang sama. Karena aktivitas dengan mode peluncuran"singleTask"
atau"singleInstance"
hanya bisa berada di akar tugas, re-parenting terbatas untuk mode"standard"
dan"singleTop"
. (Lihat juga atributlaunchMode
.) android:alwaysRetainTaskState
- Apakah status tugas tempat aktivitas berada selalu
dipertahankan oleh sistem.
"true"
jika ya, dan"false"
jika sistem dapat mereset tugas ke status awalnya dalam situasi tertentu. Nilai defaultnya adalah"false"
. Atribut ini hanya berguna untuk aktivitas root tugas. Atribut akan diabaikan untuk semua aktivitas lainnya.Biasanya, sistem menghapus tugas, menghapus semua aktivitas dari tumpukan di atas aktivitas root, dalam situasi tertentu ketika pengguna memilih kembali tugas tersebut dari layar beranda. Biasanya, ini dilakukan jika pengguna tidak mengunjungi tugas untuk selang waktu tertentu, misalnya 30 menit.
Namun, jika atribut ini bernilai
"true"
, pengguna akan selalu kembali ke tugas dalam status terakhirnya, bagaimana pun caranya mereka sampai di sana. Ini berguna dalam aplikasi seperti browser web yang memiliki banyak status, seperti beberapa tab terbuka yang ingin dipertahankan oleh pengguna. android:autoRemoveFromRecents
- Apakah tugas yang diluncurkan oleh aktivitas dengan atribut ini tetap berada di
layar Terbaru hingga aktivitas terakhir dalam
tugas selesai. Jika
true
, tugas akan secara otomatis dihapus dari layar Terbaru. Ini menggantikan penggunaanFLAG_ACTIVITY_RETAIN_IN_RECENTS
oleh pemanggil. Aktivitas harus bernilai boolean, entah"true"
atau"false"
. android:banner
- Resource drawable
menyediakan banner grafis yang diperluas untuk item terkait. Gunakan dengan tag
<activity>
untuk menyediakan banner default bagi aktivitas tertentu, atau dengan tag<application>
untuk menyediakan banner bagi semua aktivitas aplikasi.Sistem menggunakan banner ini untuk merepresentasikan aplikasi di layar utama Android TV. Karena hanya ditampilkan di layar utama, banner hanya ditentukan oleh aplikasi dengan aktivitas yang menangani intent
CATEGORY_LEANBACK_LAUNCHER
.Atribut ini ditetapkan sebagai referensi ke resource drawable yang berisi image, seperti
"@drawable/banner"
. Tidak ada banner default.Untuk mengetahui informasi selengkapnya, lihat Menyediakan banner layar utama dalam Mulai Menggunakan Aplikasi TV.
android:canDisplayOnRemoteDevices
-
Menunjukkan apakah aktivitas dapat ditampilkan pada perangkat jarak jauh yang mungkin menjalankan Android, mungkin juga tidak. Harus berupa nilai boolean,
"true"
atau"false"
.Nilai default atribut ini adalah
"true"
. android:clearTaskOnLaunch
- Apakah semua aktivitas akan dihapus dari tugas, kecuali untuk
aktivitas root, saat diluncurkan kembali dari layar utama.
"true"
jika tugas selalu diturunkan hingga ke aktivitas root, dan"false"
jika tidak. Nilai defaultnya adalah"false"
. Atribut ini hanya berguna untuk aktivitas yang memulai tugas baru—aktivitas root. Atribut diabaikan untuk semua aktivitas lain dalam tugas.Jika bernilai
"true"
, setiap kali pengguna memulai tugas, mereka akan dibawa ke aktivitas root, terlepas dari apa yang terakhir dilakukan dalam tugas dan apakah mereka menggunakan tombol Kembali atau Beranda untuk meninggalkannya. Jika bernilai"false"
, tugas bisa dihapus dari aktivitas dalam situasi tertentu, namun tidak selalu. Untuk mengetahui informasi selengkapnya, lihat atributalwaysRetainTaskState
.Misalkan pengguna meluncurkan aktivitas P dari layar utama, dan dari sana menuju aktivitas Q. Selanjutnya, pengguna mengetuk Beranda, lalu kembali ke aktivitas P. Biasanya, pengguna akan melihat aktivitas Q, karena hal itulah yang terakhir mereka lakukan dalam tugas P. Namun, jika P menetapkan tanda ini ke
"true"
, semua aktivitas di atasnya—dalam hal ini Q—akan dihapus saat pengguna meluncurkan aktivitas P dari layar utama. Jadi, pengguna hanya melihat P ketika kembali ke tugas.Jika atribut ini dan
allowTaskReparenting
adalah"true"
, aktivitas apa pun yang dapat di-reparent akan dipindahkan ke tugas yang berbagi afinitas dengannya. Aktivitas yang tersisa kemudian dihapus.Atribut ini diabaikan jika
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
tidak ditetapkan. android:colorMode
Menentukan mode warna aktivitas. Jika ditentukan, dapat berupa
hdr
atauwideColorGamut
.Jika
hdr
, meminta agar aktivitas ditampilkan dalam rentang dinamis tinggi jika perangkat mendukungnya.Jika
wideColorGamut
, meminta agar aktivitas ditampilkan dalam mode gamut warna yang luas di perangkat yang kompatibel. Dalam mode gamut warna yang luas, jendela dapat dirender di luar gamutSRGB
untuk menampilkan warna yang lebih cerah. Jika perangkat tidak mendukung rendering gamut warna yang luas, atribut ini tidak akan memiliki pengaruh apa pun. Untuk mengetahui informasi selengkapnya mengenai rendering dalam mode warna yang luas, lihat Meningkatkan grafis dengan konten warna yang luas.android:configChanges
- Mencantumkan perubahan konfigurasi bahwa aktivitas menangani dirinya sendiri. Ketika perubahan
konfigurasi terjadi pada runtime, aktivitas dimatikan dan dimulai ulang secara default, tetapi mendeklarasikan
konfigurasi dengan atribut ini akan mencegah aktivitas dimulai ulang. Sebaliknya,
aktivitas tetap berjalan dan metode
onConfigurationChanged()
dipanggil.Catatan: Gunakan atribut ini hanya dalam kasus khusus untuk meningkatkan performa dan responsivitas aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menangani perubahan konfigurasi.
String berikut adalah nilai yang valid untuk atribut ini. Beberapa nilai dipisahkan oleh
|
, seperti"locale|navigation|orientation"
.Nilai Deskripsi "colorMode"
Kemampuan mode warna layar (color gamut atau rentang dinamis) telah berubah.
Catatan: Mode warna yang diminta aktivitas dengan atribut
colorMode
atau saat runtime berbeda dengan kemampuan untuk mode warna yang berbeda. Aktivitas yang mengubah mode warna yang digunakannya tidak menyebabkan perubahan konfigurasi, karena kemampuan warna layar tidak berubah."density"
Perubahan pada kepadatan tampilan, seperti ketika pengguna menentukan skala tampilan yang berbeda atau tampilan yang berbeda, sekarang aktif.
Ditambahkan di API level 24
"fontScale"
Perubahan pada faktor penskalaan font, seperti saat pengguna memilih ukuran font global yang baru. "fontWeightAdjustment"
Jumlah peningkatan ketebalan font telah berubah. "grammaticalGender"
Gender gramatikal bahasa tersebut telah berubah. Lihat GrammaticalInflectionManager
.Ditambahkan di API level 34
"keyboard"
Perubahan pada jenis keyboard, seperti saat pengguna mencolokkan keyboard eksternal. "keyboardHidden"
Perubahan pada aksesibilitas keyboard, seperti saat pengguna menggunakan keyboard hardware. "layoutDirection"
Perubahan pada arah tata letak, misalnya dari kiri ke kanan (LTR) menjadi kanan ke kiri (RTL).
Ditambahkan di API level 17
"locale"
Perubahan pada lokalitas, misalnya saat pengguna memilih bahasa baru yang digunakan untuk menampilkan teks. "mcc"
Perubahan pada kode negara seluler (MCC) IMSI saat SIM terdeteksi yang memperbarui MCC. "mnc"
Perubahan pada kode jaringan seluler (MNC) IMSI saat SIM terdeteksi yang memperbarui MNC. "navigation"
Perubahan TA ke jenis navigasi (trackball atau D-pad). Biasanya, hal ini tidak terjadi. "orientation"
Perubahan pada orientasi layar, seperti saat pengguna memutar perangkat.
Catatan: Jika aplikasi Anda menargetkan Android 3.2 (API level 13) atau yang lebih tinggi, deklarasikan juga konfigurasi
"screenLayout"
dan"screenSize"
karena tata letak layar dan ukuran layar dapat berubah saat perangkat beralih antara orientasi potret dan lanskap."screenLayout"
Perubahan pada tata letak layar, seperti saat tampilan yang berbeda menjadi aktif. "screenSize"
Perubahan pada ukuran layar yang tersedia saat ini.
Ini mewakili perubahan ukuran yang tersedia saat ini, relatif terhadap rasio aspek saat ini, sehingga akan berubah ketika pengguna beralih antara lanskap dan potret.
Ditambahkan di API level 13
"smallestScreenSize"
Perubahan pada ukuran layar fisik.
Ini mewakili perubahan ukuran tanpa melihat orientasi, sehingga hanya akan berubah ketika ukuran layar fisik yang sebenarnya berubah, seperti beralih ke layar eksternal. Perubahan untuk konfigurasi ini sesuai dengan perubahan pada konfigurasi
smallestWidth
.Ditambahkan di API level 13
"touchscreen"
Perubahan pada layar sentuh. Biasanya, hal ini tidak terjadi. "uiMode"
Perubahan pada mode antarmuka pengguna, seperti saat pengguna menempatkan perangkat di meja atau dok mobil, atau perubahan mode malam. Untuk mengetahui informasi selengkapnya mengenai mode UI yang berbeda, lihat UiModeManager
.Ditambahkan di API level 8.
Semua perubahan konfigurasi ini bisa berdampak pada nilai resource yang terlihat oleh aplikasi. Oleh karena itu, ketika
onConfigurationChanged()
dipanggil, biasanya semua resource perlu diambil kembali, termasuk tata letak tampilan dan drawable, untuk menangani perubahan dengan benar.Catatan: Untuk menangani multi-aplikasi yang terkait perubahan konfigurasi, gunakan
"screenLayout"
dan"smallestScreenSize"
. Multi-aplikasi didukung dalam Android 7.0 (API level 24) atau yang lebih tinggi. android:directBootAware
Apakah aktivitas tersebut Direct-Boot aware—yaitu, apakah aktivitas dapat dijalankan sebelum pengguna membuka kunci perangkat.
Catatan: Selama Direct Boot, suatu aktivitas dalam aplikasi Anda hanya bisa mengakses data yang disimpan dalam penyimpanan yang dilindungi perangkat.
Nilai defaultnya adalah
"false"
.android:documentLaunchMode
- Menetapkan bagaimana instance baru dari sebuah aktivitas ditambahkan ke tugas setiap kali diluncurkan.
Atribut ini mengizinkan pengguna memiliki beberapa dokumen dari aplikasi
yang sama tampil dalam layar Terbaru.
Atribut tersebut memiliki empat nilai yang menghasilkan efek berikut saat pengguna membuka dokumen dengan aplikasi:
Nilai Deskripsi "intoExisting"
Sistem mencari tugas yang ComponentName
intent dasarnya dan URI data cocok dengan intent peluncuran. Jika sistem menemukan tugas seperti itu, sistem akan menghapus tugas dan memulai ulang, dengan aktivitas root yang menerima panggilan keonNewIntent(android.content.Intent)
. Jika sistem tidak menemukan tugas seperti itu, sistem akan membuat tugas baru."always"
Aktivitas ini membuat tugas baru untuk dokumen, meskipun dokumen sudah dibuka. Ini sama dengan menetapkan tanda FLAG_ACTIVITY_NEW_DOCUMENT
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 Terbaru memperlakukan aktivitas seperti yang akan terjadi secara default: menampilkan tugas tunggal untuk aplikasi, yang dilanjutkan dari aktivitas apa pun yang terakhir dipanggil pengguna."never"
Aktivitas tidak diluncurkan ke dalam dokumen baru meskipun intent berisi FLAG_ACTIVITY_NEW_DOCUMENT
. Menetapkan nilai ini akan menggantikan perilaku tandaFLAG_ACTIVITY_NEW_DOCUMENT
danFLAG_ACTIVITY_MULTIPLE_TASK
, jika salah satunya ditetapkan di aktivitas, dan layar Terbaru menampilkan satu tugas untuk aplikasi, yang melanjutkan dari aktivitas apa pun yang terakhir dipanggil pengguna.Catatan: Untuk nilai selain
"none"
dan"never"
, aktivitas ditentukan denganlaunchMode="standard"
. Jika atribut ini tidak ditentukan,documentLaunchMode="none"
akan digunakan. android:enabled
- Apakah aktivitas dapat dibuat instance-nya oleh sistem. Nilainya
"true"
jika ya, dan"false"
jika tidak. Nilai defaultnya adalah"true"
.Elemen
<application>
memiliki atributenabled
-nya sendiri yang berlaku untuk semua komponen aplikasi, termasuk aktivitas. Atribut<application>
dan<activity>
harus bernilai"true"
, karena keduanya ditetapkan secara default agar sistem dapat membuat instance aktivitas. Jika salah satunya"false"
, instance tidak dapat dibuat. android:enableOnBackInvokedCallback
- Tanda ini memungkinkan Anda menggunakan animasi sistem prediktif pada tingkat aktivitas. Perilaku ini
membuat proses migrasi aplikasi multi-aktivitas besar ke gestur kembali prediktif menjadi lebih mudah.
Menyetel
android:enableOnBackInvokedCallback=false
akan menonaktifkan kembali prediktif animasi di tingkat aktivitas atau di tingkat aplikasi, tergantung tempat Anda menetapkan tag, dan menginstruksikan sistem untuk mengabaikan panggilan ke API platformOnBackInvokedCallback
. android:excludeFromRecents
Apakah tugas yang dimulai oleh aktivitas ini dikecualikan dari Layar terbaru. Artinya, ketika aktivitas tersebut adalah aktivitas root dari tugas baru, atribut ini menentukan apakah tugas tersebut muncul dalam daftar aplikasi terbaru. Penting
"true"
jika tugas dikecualikan dari daftar;"false"
jika disertakan. Nilai default-nya adalah"false"
.android:exported
Apakah aktivitas bisa diluncurkan oleh komponen aplikasi lain aplikasi:
- Jika
"true"
, aktivitas dapat diakses oleh aplikasi apa pun, dan dapat diluncurkan oleh nama class yang sama. - Jika
"false"
, aktivitas hanya dapat diluncurkan oleh komponen aplikasi yang sama, aplikasi dengan ID pengguna yang sama, atau komponen sistem dengan hak istimewa. Ini adalah nilai default saat tidak ada filter intent.
Jika suatu aktivitas di aplikasi Anda menyertakan filter intent, tetapkan elemen ini ke
"true"
agar aplikasi lain dapat memulainya. Misalnya, jika aktivitas tersebut adalah aktivitas utama aplikasi dan 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 digunakan untuk membatasi entity eksternal yang dapat memanggil aktivitas. Lihat atribut
permission
.- Jika
android:finishOnTaskLaunch
- Apakah instance aktivitas yang ada dihentikan,
kecuali untuk aktivitas root, saat pengguna meluncurkan kembali tugasnya dengan memilih tugas di
layar utama.
"true"
jika dinonaktifkan, dan"false"
jika tidak. Nilai defaultnya adalah"false"
.Jika atribut ini dan
allowTaskReparenting
bernilai"true"
, atribut ini mengalahkan yang lainnya. Afinitas aktivitas diabaikan. Aktivitas tersebut tidak di-reparent, tapi dihancurkan.Atribut ini diabaikan jika
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
tidak ditetapkan. android:hardwareAccelerated
- Apakah rendering dengan akselerasi hardware diaktifkan untuk aktivitas
ini.
"true"
jika diaktifkan, dan"false"
jika tidak. Nilai defaultnya adalah"false"
.Di Android 3.0 dan yang lebih tinggi, perender OpenGL dengan akselerasi hardware tersedia untuk aplikasi guna meningkatkan performa bagi berbagai operasi grafis 2D yang umum. Jika perender dengan akselerasi hardware diaktifkan, sebagian besar operasi di Canvas, Paint, Xfermode, ColorFilter, Shader, dan Camera akan dipercepat.
Menghasilkan animasi yang lebih halus, scroll yang lebih mulus, dan peningkatan responsivitas secara keseluruhan, bahkan untuk aplikasi yang tidak menggunakan library OpenGL framework secara eksplisit. Karena perlu resource yang lebih tinggi untuk mengaktifkan akselerasi hardware, aplikasi Anda mengonsumsi lebih banyak RAM.
Tidak semua operasi 2D OpenGL diakselerasi. Jika Anda mengaktifkan perender dengan akselerasi hardware, uji apakah aplikasi Anda dapat menggunakan perender tanpa error.
android:icon
Ikon yang mewakili aktivitas. Ikon ditampilkan ke pengguna jika perwakilan dari aktivitas diperlukan pada-layar. Misalnya, ikon untuk aktivitas yang memulai tugas akan ditampilkan di jendela peluncur. Ikon sering kali disertai dengan label; untuk mengetahui informasi tentang label, lihat atribut
android:label
.Atribut ini ditetapkan sebagai referensi ke resource drawable yang berisi definisi gambar. Jika tidak, ikon yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan. Untuk mengetahui informasi selengkapnya, lihat atribut
icon
elemen<application>
.Ikon aktivitas, baik yang ditetapkan di sini atau oleh elemen
<application>
, juga merupakan ikon default untuk semua filter intent aktivitas. Untuk informasi selengkapnya, lihat atributicon
milik elemen<intent-filter>
).android:immersive
- Menetapkan pengaturan mode imersif untuk aktivitas saat ini. Jika berupa
"true"
, anggotaActivityInfo.flags
selalu memiliki himpunan bitFLAG_IMMERSIVE
, meskipun perubahan mode imersif saat runtime menggunakan metodesetImmersive()
. android:label
Label terbaca-pengguna untuk aktivitas tersebut. Label ditampilkan di layar jika aktivitas ditunjukkan kepada pengguna. Label tersebut sering kali ditampilkan bersama dengan ikon aktivitas. Jika atribut ini tidak ditetapkan, label yang ditetapkan untuk aplikasi secara keseluruhan akan digunakan sebagai gantinya. lihat
<application>
elemen Atributlabel
.Label aktivitas, baik yang ditetapkan di sini atau oleh elemen
<application>
, juga merupakan label default untuk semua filter intent aktivitas. Untuk mengetahui informasi selengkapnya, lihat atributlabel
milik elemen<intent-filter>
.Label ditetapkan sebagai referensi ke resource string sehingga dapat dilokalkan seperti string lain pada antarmuka pengguna. Namun, untuk memudahkan Anda mengembangkan aplikasi, label ini juga dapat ditetapkan sebagai string mentah.
android:launchMode
Instruksi tentang cara aktivitas diluncurkan. Ada lima mode, yang berfungsi bersama dengan tanda aktivitas (konstanta
FLAG_ACTIVITY_*
) dalam objekIntent
untuk menentukan apa yang terjadi saat aktivitas dipanggil untuk menangani intent:"standard"
"singleTop"
"singleTask"
"singleInstance"
"singleInstancePerTask"
Mode default-nya adalah
"standard"
.Seperti ditunjukkan dalam tabel berikut, mode tersebut terdiri dari dua grup utama, dengan aktivitas
"standard"
dan"singleTop"
di satu sisi, dan aktivitas"singleTask"
,"singleInstance"
, dan"singleInstancePerTask"
di sisi lainnya. Sebuah aktivitas dengan mode peluncuran"standard"
atau"singleTop"
dapat dibuat instance-nya beberapa kali.Instance bisa menjadi milik setiap tugas dan bisa ditempatkan di mana saja dalam tugas aktivitas. Biasanya, instance diluncurkan ke tugas yang memanggil
startActivity()
, kecuali jika objekIntent
berisi instruksiFLAG_ACTIVITY_NEW_TASK
, dengan tugas yang berbeda dipilih. Untuk mengetahui informasi selengkapnya, lihat atributtaskAffinity
.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. Tetapi, perangkat hanya dapat menyimpan satu tugas untuk menemukan aktivitas"singleTask"
di root tugas aktivitas.Mode
"standard"
dan"singleTop"
berbeda satu sama lain dalam satu hal: setiap kali ada intent baru untuk aktivitas"standard"
, instance class yang baru dibuat untuk merespons intent tersebut. Setiap instance menangani satu intent. Demikian pula, instance baru dari aktivitas"singleTop"
juga dapat dibuat untuk menangani intent baru.Namun, jika tugas target sudah memiliki instance yang ada dari aktivitas di bagian atas tumpukan, instance tersebut akan menerima intent baru, dalam panggilan
onNewIntent()
. Instance baru tidak dibuat. Atau—jika instance yang ada dari aktivitas"singleTop"
berada dalam tugas target, tetapi tidak di bagian atas tumpukan, atau jika berada di bagian atas tumpukan, tetapi tidak di dalam tugas target—instance baru akan dibuat dan didorong pada tumpukan.Demikian pula, jika pengguna menavigasi ke atas ke aktivitas di tumpukan saat ini, perilaku ditentukan oleh mode peluncuran aktivitas induk. Jika aktivitas induk memiliki mode peluncuran
singleTop
(atau intentup
berisiFLAG_ACTIVITY_CLEAR_TOP
), induk dibawa ke bagian atas tumpukan, dan status tidak berubah.Intent navigasi diterima oleh metode
onNewIntent()
aktivitas induk. Jika aktivitas induk memilikistandard
mode peluncuran, dan intentup
tidak berisiFLAG_ACTIVITY_CLEAR_TOP
, aktivitas saat ini dan induknya keluar dari tumpukan, dan instance baru aktivitas induk akan dibuat untuk menerima intent navigasi.Mode
"singleInstance"
juga berbeda dari"singleTask"
dan"singleInstancePerTask"
hanya dalam satu hal: aktivitas dengan mode peluncuran"singleTask"
atau"singleInstancePerTask"
memungkinkan aktivitas lainnya, terutama aktivitas"standard"
dan"singleTop"
, menjadi bagian dari tugasnya.Di sisi lain, aktivitas
"singleInstance"
tidak mengizinkan aktivitas lain menjadi bagian dari tugasnya. Aktivitas tersebut harus menjadi satu-satunya aktivitas dalam tugas. Jika aktivitas ini memulai aktivitas lain, aktivitas tersebut akan ditetapkan ke tugas yang berbeda, seolah-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 bahwa sistem tidak meluncurkan aktivitas lainnya ke tugas yang memiliki instance tersebut. Aktivitas akan selalu tunggal dan merupakan satu-satunya anggota tugasnya."singleInstancePerTask"
Kondisional Aktivitas hanya dapat berjalan sebagai aktivitas root dari tugas, aktivitas pertama yang membuat tugas. Oleh karena itu, hanya ada satu instance dari aktivitas ini dalam tugas. Namun, aktivitas ini dapat dibuat instance-nya beberapa kali dalam tugas yang berbeda. Seperti ditunjukkan dalam tabel sebelumnya,
"standard"
adalah mode default dan sesuai untuk sebagian besar jenis aktivitas."singleTop"
juga merupakan mode peluncuran yang umum dan berguna untuk berbagai jenis aktivitas. Mode lainnya,"singleTask"
,"singleInstance"
, dan"singleInstancePerTask"
, tidak sesuai untuk sebagian besar aplikasi. Mode itu menghasilkan model interaksi yang mungkin asing bagi pengguna dan sangat berbeda dari kebanyakan aplikasi lain.Terlepas dari mode peluncuran yang Anda pilih, pastikan untuk menguji kegunaan aktivitas selama peluncuran dan ketika menavigasi kembali dari aktivitas dan tugas lain dengan menggunakan tombol Kembali.
Untuk mengetahui informasi selengkapnya tentang mode peluncuran dan interaksinya dengan tanda
Intent
, lihat Tugas dan data sebelumnya.android:lockTaskMode
- Menentukan bagaimana sistem menghadirkan aktivitas ini ketika perangkat sedang berjalan dalam
mode kunci tugas.
Android dapat menjalankan tugas secara imersif, seperti kios yang disebut mode kunci tugas. Jika sistem berjalan dalam mode mengunci tugas, pengguna perangkat biasanya tidak dapat melihat notifikasi, mengakses aplikasi yang tidak diizinkan, atau kembali ke layar utama, kecuali jika aplikasi Home diizinkan.
Hanya aplikasi yang disetujui oleh pengendali kebijakan perangkat (DPC) yang dapat berjalan saat sistem berada dalam mode mengunci tugas. Namun, sistem dan aplikasi dengan hak istimewa dapat berjalan dalam mode mengunci tugas tanpa memerlukan izin
Nilainya bisa berupa salah satu string
R.attr.lockTaskMode
berikut:Nilai Deskripsi "normal"
Nilai default. Nilai ini merupakan default. Tugas tidak diluncurkan ke dalam mode mengunci tugas namun bisa ditempatkan di sana dengan memanggil startLockTask()
."never"
Tugas tidak diluncurkan ke dalam mode
lockTask
, dan pengguna perangkat tidak dapat memasang pin tugas ini dari layar Terbaru.Catatan: Mode ini hanya tersedia untuk sistem dan aplikasi dengan hak istimewa. Aplikasi yang tidak memiliki hak istimewa dengan nilai ini diperlakukan sebagai
normal
."if_whitelisted"
Jika DPC mengizinkan paket ini menggunakan DevicePolicyManager.setLockTaskPackages()
, mode ini identik 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 di API level 23.
android:maxRecents
- Jumlah maksimum tugas yang di-root pada aktivitas ini dalam layar Terbaru. Ketika jumlah entri tercapai, sistem menghapus instance yang paling jarang digunakan dari layar Terbaru. Nilai yang valid adalah bilangan bulat dari 1 sampai 50, atau 1 sampai 25 pada perangkat dengan memori rendah. Nol tidak valid. Nilai default-nya adalah 16.
android:maxAspectRatio
Rasio aspek maksimum yang didukung aktivitas. Jika aplikasi berjalan pada perangkat yang rasio aspeknya lebih lebar, sistem akan secara otomatis memberi tampilan lebar aplikasi tersebut, sehingga sebagian layar tidak terpakai dan aplikasi bisa berjalan pada rasio aspek maksimum yang ditetapkan.
Rasio aspek maksimum dinyatakan sebagai bentuk desimal dari hasil bagi perangkat yang lebih panjang dibagi dengan dimensi lebih pendek. Misalnya, jika rasio aspek maksimumnya 7:3, setel nilai atribut ini menjadi 2,33.
Pada perangkat non-wearable, nilai atribut ini harus 1,33 atau lebih besar. Pada perangkat wearable, nilai atribut harus 1,0 atau lebih besar. Jika tidak, sistem mengabaikan nilai yang ditetapkan.
Catatan: Atribut ini diabaikan jika aktivitas menyetel
resizeableActivity
ke benar, karena hal tersebut berarti aktivitas Anda mendukung ukuran apa pun.Untuk mengetahui informasi selengkapnya tentang atribut ini, lihat Mendeklarasikan rasio aspek maksimum.
android:multiprocess
- Apakah sebuah instance aktivitas dapat diluncurkan ke dalam proses dari komponen
yang memulainya.
"true"
jika dapat, dan"false"
jika tidak. Nilai default-nya adalah"false"
.Biasanya, instance baru dari aktivitas diluncurkan ke dalam proses aplikasi yang menentukannya, sehingga semua instance aktivitas berjalan dalam proses yang sama. Namun, jika tanda ini disetel ke
"true"
, instance aktivitas bisa berjalan di beberapa proses, memungkinkan sistem untuk membuat instance di mana pun mereka digunakan. Izin yang diberikan memungkinkan hal ini—sesuatu yang hampir tidak penting atau diperlukan. android:name
- Nama class yang mengimplementasikan aktivitas, subclass dari
Activity
. Nilai atribut biasanya adalah nama class yang sepenuhnya memenuhi syarat, seperti"com.example.project.ExtracurricularActivity"
. Namun, sebagai singkatan, jika karakter pertama dari nama adalah titik, seperti".ExtracurricularActivity"
, karakter tersebut akan ditambahkan ke namespace yang ditentukan dalam filebuild.gradle
.Setelah Anda memublikasikan aplikasi, jangan ubah nama ini, kecuali jika Anda menetapkan
android:exported="false"
. Tidak ada default untuknya. Nama ini harus ditetapkan. android:noHistory
- Apakah aktivitas dihapus dari tumpukan aktivitas dan
selesai, dengan memanggil metode
finish()
, saat pengguna keluar dari aktivitas tersebut dan tidak lagi terlihat di layar."true"
jika sudah selesai, dan"false"
jika belum. Nilai defaultnya adalah"false"
.Nilai
"true"
berarti aktivitas tersebut tidak meninggalkan rekaman aktivitas historis. Aktivitas itu tidak tetap berada dalam tumpukan aktivitas tugas, sehingga pengguna tidak dapat kembali ke sana. Dalam hal ini,onActivityResult()
tidak pernah dipanggil jika Anda memulai aktivitas lain sebagai akibat dari aktivitas ini.Atribut ini diperkenalkan di API level 3.
android:parentActivityName
- Nama class induk logis dari aktivitas. Nama yang ada di sini harus cocok dengan nama
class yang diberikan ke
atribut
android:name
milik elemen<activity>
yang sesuai.Sistem akan membaca atribut ini untuk menentukan aktivitas yang akan dimulai ketika pengguna mengetuk tombol Naik di panel tindakan. Sistem ini juga bisa menggunakan informasi ini untuk menyatukan data sebelumnya aktivitas dengan
TaskStackBuilder
.Untuk mendukung API level 4 - 16, Anda juga bisa mendeklarasikan aktivitas induk dengan elemen
<meta-data>
yang menetapkan nilai untuk"android.support.PARENT_ACTIVITY"
:<activity android:name="com.example.app.ChildActivity" android:label="@string/title_child_activity" android:parentActivityName="com.example.app.MainActivity" > <!-- Parent activity meta-data to support API level 4+ --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.app.MainActivity" /> </activity>
Untuk mengetahui informasi selengkapnya tentang mendeklarasikan aktivitas induk untuk mendukung navigasi Naik, baca Menyediakan Navigasi Naik.
Atribut ini diperkenalkan di API level 16.
android:persistableMode
Menentukan bagaimana instance aktivitas dipertahankan dalam tugas yang berisi saat perangkat dimulai ulang.
Jika aktivitas root dari tugas menetapkan nilai atribut ini ke
persistRootOnly
, hanya aktivitas root yang dipertahankan. Jika tidak, aktivitas yang lebih tinggi dari data sebelumnya tugas diperiksa; salah satu dari aktivitas yang menetapkan nilai atribut ini 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
startActivity()
ataustartActivityForResult()
tidak diberi izin yang ditentukan, intent-nya tidak akan dikirim ke aktivitas.Jika atribut ini tidak ditetapkan, izin yang ditetapkan oleh atribut
permission
milik elemen<application>
diterapkan untuk aktivitas tersebut. Jika tidak ada atribut yang ditetapkan, aktivitas tersebut tidak dilindungi oleh izin.Untuk mengetahui informasi selengkapnya tentang izin, lihat bagian Izin di ringkasan manifes Aplikasi dan Tips keamanan.
android:process
Nama proses tempat aktivitas berjalan. Biasanya, semua komponen aplikasi berjalan dalam nama proses default yang dibuat untuk aplikasi, dan Anda tidak perlu menggunakan atribut ini. Namun jika perlu, Anda bisa mengganti nama proses default dengan atribut ini, sehingga Anda bisa menyebarkan komponen aplikasi di berbagai proses.
Jika nama yang ditetapkan untuk atribut ini diawali dengan titik dua (
:
), proses baru, yang bersifat pribadi untuk aplikasi, akan dibuat saat diperlukan dan aktivitas akan berjalan dalam proses tersebut.Jika nama proses dimulai dengan karakter huruf kecil, aktivitas akan berjalan pada proses global dari nama tersebut, jika memiliki izin untuk melakukannya. Hal ini memungkinkan komponen dalam aplikasi yang berbeda untuk berbagi proses, sehingga mengurangi penggunaan resource.
Atribut
process
elemen<application>
dapat menetapkan nama proses default yang berbeda untuk semua komponen.android:relinquishTaskIdentity
Apakah aktivitas melepaskan pengidentifikasi tugasnya ke aktivitas di atasnya dalam tumpukan tugas. Tugas yang aktivitas root-nya menetapkan atribut ini ke
"true"
menggantikan basisIntent
dengan aktivitas berikutnya dalam tugas.Jika aktivitas berikutnya juga menetapkan atribut ini ke
"true"
, aktivitas tersebut akan menghasilkanIntent
dasar untuk aktivitas apa pun yang diluncurkan dalam tugas yang sama. Ini terus berlanjut untuk setiap aktivitas sampai menemukan aktivitas yang menyetel atribut ini ke"false"
. Nilai defaultnya adalah"false"
.Atribut yang disetel ke
"true"
juga mengizinkan penggunaan aktivitas dariActivityManager.TaskDescription
untuk mengubah label, warna, dan ikon di layar Terbaru.android:requireContentUriPermissionFromCaller
-
Menentukan izin yang diperlukan untuk meluncurkan aktivitas ini saat meneruskan URI konten. Nilai defaultnya adalah
none
, yang berarti tidak ada nilai spesifik izin diperlukan. Menetapkan atribut ini akan membatasi aktivitas pemanggilan berdasarkan izin dari pemanggil. Jika invoker tidak memiliki izin yang diperlukan, awal aktivitas akan ditolak melaluiSecurityException
.Perhatikan bahwa penerapan berfungsi untuk URI konten di dalam
Intent.getData()
,Intent.EXTRA_STREAM
, danIntent.getClipData()
.Mungkin berupa nilai string, menggunakan '\\;' untuk meng-escape karakter seperti '\\n' atau '\\uxxxx' untuk karakter unicode;
Harus berupa salah satu dari nilai konstanta berikut.
Konstanta Nilai Deskripsi none 0 Default, tidak ada izin khusus yang diperlukan. baca 1 Memaksa pemanggil untuk memiliki akses baca ke URI konten yang diteruskan. readAndWrite 4 Memaksa pemanggil agar memiliki akses baca dan tulis ke URI konten yang diteruskan. readOrWrite 3 Memaksa pemanggil agar memiliki akses baca atau tulis ke URI konten yang diteruskan. tulis 2 Memaksa pemanggil untuk memiliki akses tulis ke URI konten yang diteruskan. android:resizeableActivity
-
Menentukan apakah aplikasi mendukung mode multi-aplikasi. Anda dapat menetapkan atribut ini baik dalam elemen
<activity>
atau elemen<application>
.Jika Anda menetapkan atribut ini ke
"true"
, pengguna dapat meluncurkan aktivitas dalam mode layar terpisah dan format bebas. Jika Anda menyetel atribut ke"false"
, aplikasi tidak dapat diuji atau dioptimalkan untuk lingkungan multi-aplikasi. Sistem masih dapat menempatkan aktivitas dalam mode multi-aplikasi dengan mode kompatibilitas yang diterapkan.Mengatur atribut ini ke
"false"
tidak menjamin bahwa tidak ada aplikasi lain dalam mode multi-aplikasi yang terlihat di layar, seperti di picture-in-picture, atau di tampilan lain. Oleh karena itu, menyetel tanda ini tidak berarti aplikasi Anda memiliki akses resource eksklusif.Jika aplikasi menargetkan API level 24 atau yang lebih tinggi, dan Anda tidak menetapkan nilai untuk atribut ini, nilai atribut akan ditetapkan secara default ke
"true"
.Jika aplikasi Anda menargetkan API level 31 atau yang lebih tinggi, atribut ini berfungsi secara berbeda pada layar kecil dan besar:
- Layar besar (sw >= 600dp): semua aplikasi mendukung mode multi-aplikasi. Atribut ini menunjukkan
apakah aplikasi dapat diubah ukurannya, bukan apakah aplikasi mendukung mode multi-aplikasi. Jika
resizeableActivity="false"
, aplikasi dialihkan ke mode kompatibilitas saat diperlukan agar sesuai dengan dimensi tampilan. - Layar kecil (sw < 600 dp): jika
resizeableActivity="true"
serta lebar dan tinggi minimum aktivitas berada dalam persyaratan multi-aplikasi, aplikasi akan mendukung mode multi-aplikasi. 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 yang diminta dari aktivitas.
Ketika suatu aktivitas mengisi seluruh layar, orientasi yang diminta akan berfungsi sebagai saran untuk ubah orientasi di layar itu agar sesuai dengan nilai yang diminta. Hal ini dapat mengakibatkan yang berbeda dari orientasi fisik layar di ruang angkasa, yang membutuhkan pengguna memutar perangkat untuk terus menggunakan aplikasi. Di Android 12 (level API 31) dan yang lebih tinggi, produsen perangkat dapat mengonfigurasi setiap perangkat layar (seperti layar perangkat foldable seukuran tablet) untuk mengabaikan saran ini, dan sebagai gantinya memaksa aktivitas menjadi tampilan lebar dalam orientasi perangkat pilihan pengguna. Ini menghasilkan orientasi aktivitas yang cocok dengan yang diminta tanpa mengharuskan pengguna memutar perangkat mereka secara fisik.
Dalam mode multi-aplikasi, orientasi yang diminta tidak berfungsi sebagai saran untuk keseluruhan orientasi. Jika aktivitas tersebut tampilan lebar, item yang diminta akan berdampak pada tampilan lebar yang diterapkan pada aktivitas.
Nilainya bisa berupa salah satu string berikut:
"unspecified"
Nilai default. Sistem memilih orientasi. Kebijakan yang digunakan, serta pilihan yang dibuat dalam konteks tertentu, mungkin berbeda antarperangkat. "behind"
Orientasi yang sama dengan aktivitas yang terletak persis di bawahnya dalam tumpukan aktivitas. "landscape"
Orientasi lanskap (lebar tampilan lebih panjang daripada tingginya). "portrait"
Orientasi potret (tinggi tampilan lebih panjang daripada lebarnya). "reverseLandscape"
Orientasi lanskap yang berlawanan arah dari lanskap normal. Ditambahkan di API level 9. "reversePortrait"
Orientasi potret yang berlawanan arah dari potret normal. Ditambahkan di API level 9. "sensorLandscape"
Orientasi lanskap, namun bisa lanskap normal atau terbalik berdasarkan sensor perangkat. Sensor digunakan meskipun pengguna telah mengunci rotasi berbasis sensor. Ditambahkan di API level 9. "sensorPortrait"
Orientasi potret, namun bisa potret normal atau terbalik berdasarkan sensor perangkat. Sensor digunakan meskipun pengguna telah mengunci rotasi berbasis sensor. Namun, bergantung pada konfigurasi perangkat, rotasi terbalik mungkin tidak diizinkan. Ditambahkan di API level 9. "userLandscape"
Orientasi lanskap, namun bisa lanskap normal atau terbalik berdasarkan sensor perangkat dan preferensi sensor pengguna. Ditambahkan dalam API level 18. "userPortrait"
Orientasi potret, namun bisa potret normal atau terbalik berdasarkan sensor perangkat dan preferensi sensor pengguna. Namun, bergantung pada konfigurasi perangkat, rotasi terbalik mungkin tidak diizinkan. Ditambahkan dalam API level 18. "sensor"
Sensor orientasi perangkat menentukan orientasi. Orientasi tampilan bergantung pada bagaimana pengguna memegang perangkat. Tampilan akan berubah ketika pengguna memutar perangkat. Meskipun demikian, beberapa perangkat secara default tidak bisa berputar ke keempat orientasi. Untuk menggunakan keempat orientasi, gunakan "fullSensor"
. Sensor digunakan meskipun pengguna mengunci rotasi berbasis sensor."fullSensor"
Sensor orientasi perangkat menentukan orientasi untuk masing-masing dari empat orientasi. Ini serupa dengan "sensor"
, kecuali bahwa fitur ini memungkinkan yang mana pun dari empat orientasi layar yang dimungkinkan, terlepas dari apa yang biasanya didukung perangkat. Misalnya, beberapa perangkat biasanya tidak menggunakan potret terbalik atau lanskap terbalik, tetapi fitur ini memungkinkan orientasi tersebut. Ditambahkan di API level 9."nosensor"
Orientasi ditetapkan tanpa mengacu pada sensor orientasi fisik. Sensor diabaikan, sehingga tampilan tidak berputar berdasarkan cara pengguna menggerakkan perangkat. "user"
Orientasi yang saat ini disukai pengguna. "fullUser"
Jika pengguna telah mengunci rotasi berbasis sensor, fitur ini berperilaku sama seperti user
, jika tidak, fitur ini berperilaku sama sepertifullSensor
dan memungkinkan yang mana pun dari empat orientasi layar yang dimungkinkan. Ditambahkan dalam API level 18."locked"
Mengunci orientasi ke rotasi saat ini, apa pun itu. Ditambahkan dalam API level 18. Catatan: Jika Anda mendeklarasikan salah satu nilai lanskap atau potret, ini dianggap sebagai persyaratan sulit untuk orientasi tempat aktivitas dijalankan. Nilai yang Anda deklarasikan mengaktifkan pemfilteran oleh layanan seperti Google Play sehingga aplikasi hanya tersedia untuk perangkat yang mendukung orientasi yang dibutuhkan oleh aktivitas Anda. Misalnya, jika Anda mendeklarasikan
"landscape"
,"reverseLandscape"
, atau"sensorLandscape"
, aplikasi Anda hanya akan tersedia untuk perangkat yang mendukung orientasi lanskap.Selain itu, deklarasikan secara eksplisit bahwa aplikasi Anda memerlukan orientasi potret atau lanskap dengan Elemen
<uses-feature>
, seperti<uses-feature android:name="android.hardware.screen.portrait"/>
. Ini adalah perilaku pemfilteran yang disediakan oleh Google Play dan layanan lain yang mendukungnya, dan platform itu sendiri tidak mengontrol apakah aplikasi Anda dapat diinstal jika perangkat mendukung orientasi tertentu saja.android:showForAllUsers
-
Apakah aktivitas ditampilkan saat pengguna perangkat saat ini berbeda dengan pengguna yang meluncurkan aktivitas. Anda bisa menetapkan atribut ini ke nilai literal, seperti
"true"
atau"false"
, atau Anda bisa menetapkan atribut ke resource atau atribut tema yang berisi nilai boolean.Atribut ini ditambahkan di API level 23.
android:stateNotNeeded
- Apakah aktivitas dapat dihentikan dan berhasil dimulai ulang
tanpa menyimpan statusnya.
"true"
jika dapat dimulai ulang tanpa merujuk ke status sebelumnya, dan"false"
jika status sebelumnya diperlukan. Nilai defaultnya adalah"false"
.Biasanya, sebelum suatu aktivitas dimatikan sementara untuk menghemat resource, metode
onSaveInstanceState()
akan dipanggil. Metode ini menyimpan status aktivitas saat ini di objekBundle
, yang kemudian diteruskan keonCreate()
ketika aktivitas dimulai ulang. Jika atribut ini ditetapkan ke"true"
,onSaveInstanceState()
mungkin tidak dipanggil, danonCreate()
akan diteruskannull
, bukanBundle
, seperti saat aktivitas dimulai untuk pertama kalinya.Setelan
"true"
berarti bahwa aktivitas dapat dimulai ulang tanpa status yang dipertahankan. Misalnya, aktivitas yang menampilkan Layar utama menggunakan setelan ini untuk memastikan bahwa aktivitas tidak dihapus jika bermasalah karena beberapa alasan. android:supportsPictureInPicture
-
Menentukan apakah aktivitas mendukung tampilan picture-in-picture.
android:taskAffinity
Tugas yang memiliki afinitas dengan aktivitas. Aktivitas dengan afinitas yang sama secara konseptual menjadi milik tugas yang sama, milik "aplikasi" yang sama dari perspektif pengguna. Afinitas tugas ditentukan oleh afinitas aktivitas root-nya.
Afinitas menetapkan dua hal: tugas yang di-reparent aktivitas (lihat atribut
allowTaskReparenting
) dan tugas yang menjadi tempat bagi aktivitas ketika diluncurkan dengan tandaFLAG_ACTIVITY_NEW_TASK
.Secara default, seluruh aktivitas dalam aplikasi memiliki afinitas yang sama. Anda bisa menetapkan atribut ini untuk mengelompokkannya secara berbeda, dan bahkan aktivitas tempat yang didefinisikan dalam aplikasi yang berbeda dalam tugas yang sama. Untuk menetapkan bahwa aktivitas tidak memiliki afinitas untuk tugas apa pun, tetapkan ke string kosong.
Jika atribut ini tidak ditetapkan, aktivitas akan mewarisi set afinitas yang ditetapkan untuk aplikasi. Lihat atribut
taskAffinity
milik elemen<application>
. Nama afinitas default untuk aplikasi adalah namespace yang ditetapkan dalam 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
theme
ini dan juga bisa menyebabkan animasi "mulai" sebelum aktivitas diluncurkan, agar lebih cocok dengan tampilan aktivitas sebenarnya.Jika atribut ini tidak ditetapkan, aktivitas akan mewarisi tema yang ditetapkan untuk aplikasi secara keseluruhan, dari atribut
theme
elemen<application>
. Jika atribut tersebut juga tidak ditetapkan, tema sistem default akan digunakan. Untuk mengetahui informasi selengkapnya, lihat Gaya dan tema. android:uiOptions
Opsi tambahan untuk UI aktivitas. Harus berupa salah satu dari nilai berikut.
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 berarti jumlah ruang yang wajar akan tersedia, bukan hanya untuk item tindakan, tetapi juga untuk elemen navigasi dan judul di bagian atas. Item menu tidak dibagi di dua panel. Keduanya selalu muncul bersama. Untuk mengetahui informasi selengkapnya tentang panel aplikasi, lihat Menambahkan panel aplikasi.
Atribut ini ditambahkan di API level 14.
android:windowSoftInputMode
- Bagaimana jendela utama aktivitas berinteraksi dengan jendela yang berisi
keyboard virtual di layar. Penetapan untuk atribut ini memengaruhi dua
hal:
- Apakah keyboard virtual akan disembunyikan atau terlihat saat aktivitas menjadi fokus perhatian pengguna.
- Apakah jendela utama aktivitas diperkecil ukurannya untuk memberi ruang bagi keyboard virtual, atau apakah kontennya digeser agar fokus saat ini tetap terlihat ketika sebagian jendela tertutup oleh keyboard virtual.
Setelan harus berupa salah satu nilai yang tercantum dalam tabel berikut, atau kombinasi dari satu nilai
"state..."
ditambah satu nilai"adjust..."
. Menetapkan beberapa nilai di salah satu grup, misalnya beberapa nilai"state..."
, memiliki hasil yang tidak ditentukan. Nilai individual dipisahkan oleh garis vertikal (|
), seperti ditunjukkan dalam contoh berikut:<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
Nilai yang ditetapkan di sini (selain
"stateUnspecified"
dan"adjustUnspecified"
) menggantikan nilai yang ditetapkan dalam tema.Nilai Deskripsi "stateUnspecified"
Apakah keyboard virtual disembunyikan atau terlihat tidak ditentukan. Sistem memilih status yang sesuai atau bergantung pada setelan dalam temanya. Ini adalah setelan default untuk perilaku keyboard virtual.
"stateUnchanged"
Keyboard virtual dipertahankan dalam apa pun status terakhirnya, apakah terlihat atau tersembunyi, ketika aktivitas berpindah ke latar depan. "stateHidden"
Keyboard virtual disembunyikan ketika pengguna memilih aktivitas—yaitu ketika pengguna dengan tegas menuju ke aktivitas, bukan kembali ke dalamnya ketika meninggalkan aktivitas lain. "stateAlwaysHidden"
Keyboard virtual selalu disembunyikan jika jendela utama aktivitas memiliki fokus input. "stateVisible"
Keyboard virtual dibuat terlihat ketika pengguna memilih aktivitas—yaitu ketika pengguna dengan tegas menuju ke aktivitas, bukan kembali ke dalamnya ketika meninggalkan aktivitas lain. "stateAlwaysVisible"
Keyboard virtual terlihat saat jendela menerima fokus input. "adjustUnspecified"
Apakah jendela utama aktivitas diubah ukurannya agar tersedia ruang bagi keyboard virtual, atau konten jendela digeser agar fokus saat ini terlihat di layar tidak ditentukan. Sistem akan secara otomatis memilih salah satu mode ini, tergantung pada apakah konten jendela memiliki tampilan tata letak yang dapat menggulir kontennya. Jika ada tampilan seperti itu, jendela akan diubah ukurannya, dengan asumsi bahwa menggulir dapat membuat semua konten jendela terlihat dalam area yang lebih kecil. Ini adalah pengaturan default untuk perilaku jendela utama.
"adjustResize"
Jendela utama aktivitas selalu diubah ukurannya agar tersedia ruang bagi keyboard virtual di layar. "adjustPan"
Jendela utama aktivitas tidak diubah ukurannya untuk menyediakan ruang bagi keyboard virtual. Sebaliknya, konten jendela secara otomatis akan digeser sehingga fokus saat ini tidak terhalang oleh keyboard, dan pengguna dapat selalu melihat apa yang mereka ketik. Ini biasanya kurang diminati dibandingkan mengubah ukuran, karena pengguna mungkin perlu menutup keyboard virtual untuk bisa berinteraksi dengan bagian jendela yang terhalang. Atribut ini diperkenalkan di API level 3.
- diperkenalkan di:
- API level 1 untuk semua atribut kecuali
noHistory
danwindowSoftInputMode
, yang ditambahkan dalam API level 3. - lihat juga:
<application>
<activity-alias>
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-07-24 UTC.
[]
[]
{
"last_modified": "Terakhir diperbarui pada 2024-07-24 UTC.",
"state": ""
}