Jawaban:
Apakah itu segera keluar atau menyelesaikan fungsi dari mana ia dipanggil?
Metode yang dipanggil finish()
akan berjalan sampai selesai. The finish()
operasi bahkan tidak akan dimulai sampai Anda kembali kontrol untuk Android.
Setiap siklus hidup acara seperti onCreate
, onResume
, onPause
.... onDestroy
dari sebuah Kegiatan selalu disebut di thread tunggal - The "benang Utama".
Singkatnya, utas ini didukung oleh Antrean tempat semua acara aktivitas diposting. Utas ini dapat menjalankan semua acara ini dalam urutan penyisipan.
Jika Anda memanggil finish()
salah satu callback siklus hidup seperti onCreate()
... pesan "selesai" akan ditambahkan ke antrean ini tetapi utas tidak bebas untuk memilih & menjalankan tindakan "selesai" hingga metode yang sedang dijalankan kembali yaitu Utas dibebaskan dari tugas saat ini.
ondestroy()
adalah panggilan terakhir yang Anda terima sebelum aktivitas Anda dimusnahkan.
Hal ini dapat terjadi baik karena aktivitas sedang selesai (seseorang memanggilnya finish()
, atau karena sistem untuk sementara menghancurkan instance aktivitas ini untuk menghemat ruang. Anda dapat membedakan antara dua skenario ini dengan isFinishing()
metode.
Jika ada dua aktivitas A dan B. Dan aliran Anda mengalir dari A> B; dan B = A panggilan finish()
.
Kemudian,
Metode tempat Anda memanggil finish()
akan dijalankan seperti yang disebutkan Mark. Dan aliran panggilan balik akan diikuti -
onPause()
dari activity A
onRestart()
> onStart()
> onResume()
Kegiatan Bfinish()
dari activity A
; hanya onStop()
dari Activity A
akan disebut di sini. Sementara, dalam hal ini, di mana kita dipanggil finish()
dari Activity A
; Jadi onStop()
dan onDestroy()
keduanya akan dipanggil activity A
.