Saya menggunakan Aktivitas SingleTop untuk menerima maksud dari dialog pencarian via onNewIntent()
.
Apa yang saya perhatikan adalah yang onPause()
dipanggil sebelumnya onNewIntent()
, dan kemudian memanggilnya onResume()
. Secara visual:
- dialog pencarian dimulai
- niat pencarian dipecat ke aktivitas
onPause()
onNewIntent()
onResume()
Masalahnya adalah bahwa saya memiliki pendengar terdaftar onResume()
yang bisa dihapus onPause()
, tetapi mereka diperlukan di dalam onNewIntent()
panggilan. Apakah ada cara standar untuk membuat pendengar itu tersedia?
sumber
Intent
ke dalamonResume()
, Aktivitas Anda mungkin akan mencoba untuk mengeksekusi mencari setiap kali resume, mungkin bukan perilaku yang Anda inginkan.Catatan: Memanggil metode siklus hidup dari yang lain bukanlah praktik yang baik. Dalam contoh di bawah ini saya mencoba untuk mencapai bahwa onNewIntent Anda akan selalu disebut terlepas dari jenis Aktivitas Anda.
OnNewIntent () selalu dipanggil untuk aktivitas SingleTop / Tugas kecuali untuk pertama kalinya ketika aktivitas dibuat. Pada saat itu onCreate disebut menyediakan solusi untuk beberapa pertanyaan yang diajukan pada utas ini.
Anda dapat memanggil onNewIntent selalu dengan memasukkannya ke metode onCreate seperti
sumber