Semoga seseorang dapat membantu saya mencari tahu, jika bukan solusi, setidaknya penjelasan untuk perilaku.
Masalah:
Pada beberapa perangkat, menekan ikon peluncur menghasilkan tugas saat ini sedang dilanjutkan, pada yang lain itu menghasilkan niat peluncuran awal yang dipecat (secara efektif memulai ulang aplikasi). Mengapa ini terjadi?
Detailnya:
Ketika Anda menekan "Ikon Peluncur" aplikasi dimulai secara normal - Artinya, saya berasumsi, sebuah Intent diluncurkan dengan nama pertama Anda Activity
dengan aksi android.intent.action.MAIN
dan kategori android.intent.category.LAUNCHER
. Namun tidak selalu demikian:
Pada sebagian besar perangkat, jika Anda menekan ikon peluncur setelah aplikasi sudah berjalan, Aktivitas yang sedang berjalan dalam proses itu dilanjutkan ( BUKAN yang awal Activity
). Ini melanjutkan dengan cara yang sama seolah-olah Anda telah memilihnya dari "Tugas Terbaru" di menu OS. Ini adalah perilaku yang saya inginkan di semua perangkat.
Namun, pada perangkat lain yang dipilih perilaku yang berbeda terjadi:
Di Motorola Xoom, ketika Anda menekan ikon peluncur, Aplikasi akan selalu memulai peluncuran awal
Activity
terlepas dari apa yang sedang berjalan. Saya berasumsi bahwa ikon peluncur selalu memulai maksud "PELUNCURAN".Pada Samsung Tab 2, ketika Anda menekan ikon peluncur, jika Anda baru saja menginstal aplikasi, itu akan selalu meluncurkan awal
Activity
(Sama seperti Xoom) - namun, setelah Anda me-restart perangkat setelah instalasi, ikon peluncur akan melanjutkan aplikasi. Saya berasumsi bahwa perangkat ini menambahkan "aplikasi yang diinstal" ke dalam tabel pencarian pada startup perangkat yang memungkinkan ikon peluncur untuk melanjutkan tugas yang berjalan dengan benar?
Saya sudah membaca banyak jawaban yang suara mirip dengan masalah saya tetapi hanya menambahkan android:alwaysRetainTaskState="true"
atau menggunakan launchMode="singleTop"
untuk Activity
tidak jawabannya.
Edit:
Setelah peluncuran terbaru dari aplikasi ini, kami menemukan bahwa perilaku ini mulai terjadi pada semua perangkat setelah restart pertama. Yang tampaknya gila bagi saya tetapi melihat melalui proses restart, saya tidak dapat menemukan apa yang salah.
finish()
mereka dalam kasus di mana ia memulai yang pertama Activity
kembali daripada melanjutkannya.