lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

sintaks:
<activity android:allowEmbedded=["true" | "false"]
          android:allowTaskReparenting=["true" | "false"]
          android:alwaysRetainTaskState=["true" | "false"]
          android:autoRemoveFromRecents=["true" | "false"]
          android:banner="drawable resource"
          android:clearTaskOnLaunch=["true" | "false"]
          android:configChanges=["mcc", "mnc", "locale",
                                 "touchscreen", "keyboard", "keyboardHidden",
                                 "navigation", "screenLayout", "fontScale",
                                 "uiMode", "orientation", "screenSize",
                                 "smallestScreenSize"]
          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:label="string resource"
          android:launchMode=["standard" | "singleTop" |
                              "singleTask" | "singleInstance"]
          android:maxRecents="integer"
          android:multiprocess=["true" | "false"]
          android:name="string"
          android:noHistory=["true" | "false"]  
          android:parentActivityName="string" 
          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:stateNotNeeded=["true" | "false"]
          android:supportsPictureInPicture=["true" | "false"]
          android:taskAffinity="string"
          android:theme="resource or theme"
          android:uiOptions=["none" | "splitActionBarWhenNarrow"]
          android:windowSoftInputMode=["stateUnspecified",
                                       "stateUnchanged", "stateHidden",
                                       "stateAlwaysHidden", "stateVisible",
                                       "stateAlwaysVisible", "adjustUnspecified",
                                       "adjustResize", "adjustPan"] >   
    . . .
</activity>
dimuat dalam:
<application>
bisa berisi:
<intent-filter>
<meta-data>
keterangan:
Mendeklarasikan suatu aktivitas (subkelas Activity) yang mengimplementasikan bagian dari antarmuka pengguna visual aplikasi. Semua aktivitas harus diwakili oleh elemen <activity> dalam file manifes. Apa pun yang tidak dideklarasikan tidak akan terlihat oleh sistem dan tidak akan dijalankan.
atribut:
android:allowEmbedded
Menunjukkan bahwa aktivitas bisa diluncurkan sebagai anak yang disematkan dari aktivitas lain. Khususnya dalam kasus ketika anak berada dalam sebuah kontainer seperti Tampilan yang dimiliki oleh aktivitas lain. Misalnya, aktivitas yang digunakan untuk notifikasi khusus Wear harus mendeklarasikannya sehingga Wear bisa menampilkan aktivitas dalam aliran konteks, yang terletak dalam proses lain.

Nilai default atribut ini adalah false.

android:allowTaskReparenting
Bisa atau tidak suatu aktivitas berpindah dari tugas yang memulainya ke tugas yang memiliki afinitas adalah saat tugas tersebut berikutnya dibawa ke depan — "true" jika dapat bergerak, dan "false" jika harus tetap berada pada tugas tempatnya memulai.

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

Biasanya ketika aktivitas dimulai, itu terkait dengan tugas aktivitas yang memulainya dan tetap di sana sepanjang hidupnya. Anda bisa menggunakan atribut ini untuk memaksanya di-reparent ke tugas yang memiliki afinitas saat tugas yang sekarang tidak lagi ditampilkan. Secara khusus, itu digunakan untuk menyebabkan aktivitas aplikasi untuk berpindah ke tugas utama yang berhubungan dengan aplikasi tersebut.

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

Afinitas dari suatu aktivitas didefinisikan oleh atribut taskAffinity. Afinitas dari suatu tugas ditentukan dengan membaca afinitas aktivitas akarnya. Oleh karena itu, menurut definisinya, aktivitas akar selalu dalam tugas dengan afinitas yang sama. Karena aktivitas dengan mode peluncuran "singleTask" atau "singleInstance" hanya bisa berada di akar tugas, re-parenting terbatas untuk mode "standard" dan "singleTop" . (Lihat juga atribut launchMode .)

android:alwaysRetainTaskState
Iya atau tidaknya suatu status dari tugas tempat aktivitas berada akan selalu dipertahankan oleh sistem adalah — "true" jika selalu dipertahankan, dan "false" jika sistem diperbolehkan untuk menyetel ulang tugas ke status awalnya dalam situasi tertentu. Nilai default-nya adalah false. Atribut ini hanya berguna untuk aktivitas akar dari tugas; itu diabaikan untuk semua aktivitas lainnya.

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

Namun, bila atribut ini bernilai "true", pengguna akan selalu kembali ke tugas dalam status terakhirnya, bagaimana pun caranya mereka sampai di sana. Hal ini berguna, misalnya, dalam aplikasi seperti browser web ketika ada banyak keadaan (seperti beberapa tab terbuka) dan pengguna masih ingin memakainya.

android:autoRemoveFromRecents
Apakah tugas yang diluncurkan oleh aktivitas dengan atribut ini tetap berada di layar ringkasan sampai aktivitas terakhir dalam tugas diselesaikan. Jika true, tugasnya secara otomatis akan dibuang dari layar ringkasan. Itu menggantikan penggunaan FLAG_ACTIVITY_RETAIN_IN_RECENTS oleh pemanggil. Itu harus bernilai boolean, entah "true" atau "false".
android:banner
Sumber daya dapat digambar menyediakan spanduk grafis yang diperluas untuk item yang terkait. Gunakan dengan tag <activity> untuk menyediakan spanduk default bagi aktivitas tertentu, atau dengan tag <application> untuk menyediakan spanduk bagi semua aktivitas aplikasi.

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

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

Lihat Spanduk dalam panduan desain Pola UI untuk TV, dan Menyediakan spanduk layar beranda di Memulai Aplikasi TV untuk informasi selengkapnya.

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

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

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

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

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

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

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

Nilai Keterangan
"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.
"locale" Lokal telah berubah — pengguna telah memilih bahasa teks baru yang harus ditampilkan.
"touchscreen" Layar sentuh telah berubah. (Ini biasanya jarang terjadi.)
"keyboard" Tipe keyboard telah berubah — misalnya, pengguna telah mencolokkan keyboard eksternal.
"keyboardHidden" Aksesibilitas keyboard telah berubah — misalnya, pengguna menggunakan keyboard perangkat keras.
"navigation" Tipe navigasi (trackball/dpad) telah berubah. (Ini biasanya jarang terjadi.)
"screenLayout" Layout tampilan telah berubah — ini mungkin disebabkan oleh tampilan yang berbeda sedang diaktifkan.
"fontScale" Faktor penskalaan font telah berubah — pengguna telah memilih ukuran font global yang baru.
"uiMode" Mode antarmuka pengguna telah berubah — ini bisa disebabkan ketika pengguna meletakkan perangkat di meja/dok mobil atau ketika perubahan mode malam. Lihat UiModeManager. Ditambahkan dalam API level 8.
"orientation" Orientasi layar telah berubah — pengguna telah memutar perangkat.

Catatan: Jika aplikasi Anda menargetkan API level 13 atau yang lebih tinggi (seperti dideklarasikan oleh atribut minSdkVersion dan targetSdkVersion), maka Anda juga harus mendeklarasikan konfigurasi"screenSize" , karena juga berubah ketika perangkat beralih antara orientasi potret dan lanskap.

"screenSize" Ukuran layar yang tersedia saat ini telah berubah. Ini mewakili perubahan ukuran yang tersedia saat ini, relatif terhadap aspek rasio yang sekarang, sehingga akan berubah ketika pengguna beralih antara lanskap dan potret. Akan tetapi, jika aplikasi Anda menargetkan API level 12 atau yang lebih rendah, maka aktivitas Anda akan selalu menangani sendiri perubahan konfigurasi ini (perubahan konfigurasi ini tidak memulai ulang aktivitas Anda, bahkan saat berjalan pada perangkat Android 3.2 atau yang lebih tinggi).

Ditambahkan dalam API level 13.

"smallestScreenSize" Ukuran fisik layar telah berubah. Ini mewakili perubahan ukuran tanpa melihat orientasi, sehingga hanya akan berubah ketika ukuran layar fisik yang sebenarnya telah berubah, seperti beralih ke layar eksternal. Perubahan untuk konfigurasi ini sesuai dengan perubahan pada konfigurasi smallestWidth. Akan tetapi, jika aplikasi Anda menargetkan API level 12 atau yang lebih rendah, maka aktivitas Anda akan selalu menangani sendiri perubahan konfigurasi ini (perubahan konfigurasi ini tidak memulai ulang aktivitas Anda, bahkan saat berjalan pada perangkat Android 3.2 atau yang lebih tinggi).

Ditambahkan dalam API level 13.

"layoutDirection" Arah layout telah berubah. Misalnya, berubah dari kiri-ke-kanan (LTR) menjadi kanan-ke-kiri (RTL). Ditambahkan dalam API level 17.

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

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

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

Nilai Keterangan
"intoExisting" Aktivitas memakai tugas yang sudah ada untuk dokumen. Menggunakan nilai ini sama dengan menyetel flagFLAG_ACTIVITY_NEW_DOCUMENT, tanpa menyetel flag FLAG_ACTIVITY_MULTIPLE_TASK, seperti dijelaskan dalam Menggunakan flag Maksud untuk menambahkan tugas .
"always" Aktivitas ini membuat tugas baru untuk dokumen, meski dokumen sudah dibuka. Ini sama dengan menyetel flag FLAG_ACTIVITY_NEW_DOCUMENT dan FLAG_ACTIVITY_MULTIPLE_TASK.
"none" Aktivitas ini tidak membuat tugas baru untuk aktivitas. Ini adalah nilai default, yang membuat tugas baru hanya bila FLAG_ACTIVITY_NEW_TASK telah ditetapkan. Layar ringkasan memperlakukan aktivitas seperti itu secara default: satu tugas ditampilkan untuk aplikasi, yang dilanjutkan dari aktivitas apa pun yang terakhir dipanggil pengguna.
"never" Aktivitas ini tidak diluncurkan ke dalam dokumen baru meskipun Maksud berisi FLAG_ACTIVITY_NEW_DOCUMENT. Menyetel nilai ini akan menggantikan perilaku flag FLAG_ACTIVITY_NEW_DOCUMENT dan FLAG_ACTIVITY_MULTIPLE_TASK, jika salah satunya ditetapkan di aktivitas, dan layar ringkasan menampilkan satu tugas untuk aplikasi, yang melanjutkan dari aktivitas apa pun yang terakhir dipanggil pengguna.

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

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

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

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

android:exported
Bisa atau tidaknya aktivitas diluncurkan oleh komponen aplikasi lain — "true" jika dapat, dan "false" jika not. Jika "false", aktivitas bisa diluncurkan hanya dengan komponen aplikasi yang sama atau aplikasi dengan ID pengguna yang sama.

Nilai default tergantung pada apakah aktivitas berisi filter maksud. Ketiadaan filter berarti bahwa aktivitas tersebut bisa dipanggil hanya dengan menetapkan nama kelas yang sebenarnya. Ini berarti bahwa aktivitas ini ditujukan hanya untuk penggunaan dalam-aplikasi (karena orang lain tidak akan tahu nama kelasnya). Jadi dalam hal ini, nilai default-nya adalah "false". Di sisi lain, kehadiran setidaknya satu filter menunjukkan bahwa aktivitas tersebut ditujukan untuk penggunaan eksternal, sehingga bernilai default "true".

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

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

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

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

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

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

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

Atribut ini harus ditetapkan sebagai referensi untuk sumber daya dapat digambar yang berisi definisi gambar. Jika tidak disetel, ikon yang ditetapkan untuk aplikasi secara keseluruhan yang akan digunakan(lihat elemen <application> atribut icon).

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

android:label
Label terbaca-pengguna untuk aktivitas tersebut. Label ditampilkan pada-layar bila aktivitas harus ditunjukkan ke pengguna. Itu sering kali ditampilkan bersama dengan ikon aktivitas.

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

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

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

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

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

Mode default-nya adalah "standard".

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

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

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

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

Mode "singleTask" dan "singleInstance" juga berbeda satu sama lain hanya dalam satu hal: Aktivitas "singleTask" mengizinkan aktivitas lain untuk menjadi bagian dari tugasnya. Itu selalu berada di akar tugasnya, namun aktivitas lainnya (aktivitas "standard" dan "singleTop" yang diperlukan) bisa diluncurkan ke dalam tugas tersebut. Aktivitas "singleInstance" , di sisi lain, tidak mengizinkan aktivitas lain untuk menjadi bagian dari tugasnya. Ini adalah satu-satunya aktivitas dalam tugas. Jika itu memulai aktivitas lain, aktivitas tersebut ditugaskan bagi tugas yang berbeda — seperti jika FLAG_ACTIVITY_NEW_TASK berada dalam maksud.

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 maksud ke situ.
"singleTop" Kondisional Jika sebuah instance aktivitas sudah ada di bagian puncak tugas target, sistem akan mengarahkan maksud ke instance tersebut melalui panggilan ke metode onNewIntent(), bukannya membuat instance baru dari aktivitas.
Peluncuran khusus
(tidak direkomendasikan untuk penggunaan umum)
"singleTask" Tidak Sistem membuat aktivitas pada akar tugas baru dan mengarahkan maksud ke situ. Namun, jika instance aktivitas sudah ada, sistem akan mengarahkan maksud ke instance yang ada melalui panggilan ke metode onNewIntent(), bukan membuat instance baru.
"singleInstance" Tidak Sama seperti "singleTask", namun sistem tidak meluncurkan aktivitas lain ke tugas yang menyimpan instance. Aktivitas akan selalu menjadi satu-satunya anggota dari tugasnya.

Seperti terlihat dalam tabel di atas, standard adalah mode default dan cocok untuk sebagian besar jenis aktivitas. SingleTop adalah mode peluncuran yang berguna dan banyak dipakai untuk berbagai jenis aktivitas. Mode lainnya — singleTask dan singleInstancetidak cocok untuk kebanyakan aplikasi, karena mereka menghasilkan model interaksi yang mungkin asing bagi pengguna dan sangat berbeda dari kebanyakan aplikasi lain.

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

Untuk informasi selengkapnya tentang mode peluncuran dan interaksinya dengan flag Maksud, lihat dokumen Tugas dan Back-Stack .

android:maxRecents
Jumlah maksimum tugas yang berakar pada aktivitas ini dalam layar ringkasan. Ketika jumlah entri tercapai, sistem membuang instance yang paling jarang digunakan dari layar ringkasan. Nilai yang valid adalah 1 sampai 50 (25 pada perangkat dengan memori rendah); nol tidak valid. Ini harus berupa nilai integer, seperti 50. Nilai default-nya adalah 16.
android:multiprocess
Apakah sebuah instance aktivitas bisa diluncurkan ke dalam proses dari komponen yang memulai — "true" jika dapat, dan "false" jika tidak. Nilai default-nya adalah "false".

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

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

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

Tidak ada nama default. Namanya harus ditentukan.

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

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

Atribut ini diperkenalkan pada API Level 3.

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

Sistem akan membaca atribut ini untuk menentukan aktivitas yang harus dimulai ketika pengguna menekan tombol Naik di bilah aksi. Sistem ini juga bisa menggunakan informasi ini untuk menyatukan back-stack aktivitas dengan TaskStackBuilder.

Untuk mendukung API level 4 - 16, Anda juga bisa mendeklarasikan aktivitas induk dengan elemen <meta-data> yang menetapkan nilai untuk "android.support.PARENT_ACTIVITY". 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:permission
Nama izin yang harus dimiliki klien untuk memulai aktivitas atau mendapatkannya untuk merespons maksud. Jika pemanggil startActivity() atau startActivityForResult() belum mendapatkan izin yang ditetapkan, maksudnya tidak akan dikirimkan ke aktivitas.

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

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

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

Jika nama yang ditetapkan untuk atribut ini dimulai dengan tanda titik dua (':'), sebuah proses baru, khusus untuk aplikasi, dibuat ketika diperlukan dan aktivitas berjalan dalam proses tersebut. Jika nama proses dimulai dengan karakter huruf kecil, aktivitas tersebut akan berjalan dalam proses global untuk nama tersebut, asalkan memiliki izin untuk melakukannya. Hal ini memungkinkan komponen dalam aplikasi yang berbeda untuk berbagi proses, mengurangi penggunaan sumber daya.

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

android:relinquishTaskIdentity
Perlu tidaknya aktivitas melepaskan identifier tugas untuk aktivitas di atasnya dalam tumpukan tugas. Tugas yang aktivitas akarnya memiliki atribut ini disetel ke "true" menggantikan Maksud dasar dengan hal tersebut dari aktivitas berikutnya dalam tugas. Jika aktivitas berikutnya juga menyetel atribut ini ke "true" maka itu akan menghasilkan Maksud dasar untuk setiap aktivitas yang diluncurkannya dalam tugas yang sama. Ini terus berlanjut untuk setiap aktivitas sampai menemukan aktivitas yang menyetel atribut ini ke "false". Nilai default-nya adalah false.

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

resizeableActivity

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

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

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

Atribut ini ditambahkan di API level 24.

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

Nilainya bisa berupa salah satu string berikut:

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

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

android:stateNotNeeded
Apakah aktivitas bisa dimatikan dan berhasil dimulai ulang tanpa menyimpan statusnya — "true" jika dapat dimulai ulang tanpa mengacu ke status sebelumnya, dan "false" jika memerlukan status sebelumnya. Nilai default-nya adalah false.

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

Setelan "true" memastikan bahwa aktivitas tersebut bisa dimulai ulang saat tidak ada status yang dipertahankan. Misalnya, aktivitas yang menampilkan layar beranda menggunakan setelan ini untuk memastikan bahwa itu tidak dibuang jika mogok karena beberapa alasan.

supportsPictureInPicture

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

Atribut ini ditambahkan di API level 24.

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

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

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

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

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

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

android:uiOptions
Opsi tambahan untuk UI aktivitas.

Harus berupa salah satu nilai berikut.

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

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

Atribut ini ditambahkan di API level 14.

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

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

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

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

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

Ini adalah setelan default untuk perilaku keyboard virtual.

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

Ini adalah setelan default untuk perilaku jendela utama.

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

Atribut ini diperkenalkan pada API Level 3.

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