Yanıtlar:
Hemen çıkıyor mu yoksa çağrıldığı işlevi tamamlıyor mu?
Çağrılan yöntem finish()tamamlanana kadar çalışacaktır. finish()Eğer Android'e kontrolünü dönünceye kadar operasyon bile başlamaz.
Gibi her yaşam döngüsü olayı onCreate, onResume, onPause.... onDestroy"Ana iş parçacığı" - Bir Faaliyet her zaman tek iş parçacığı üzerinde denir.
Kısaca bu iş parçacığı, tüm etkinlik olaylarının gönderildiği bir Kuyruk tarafından desteklenir. Bu iş parçacığı, tüm bu olayları yerleştirme sırasına göre yürütebilir.
... finish()gibi yaşam döngüsü geri aramalarından birinde arama yapıyorsanız, onCreate()bu kuyruğa bir "bitiş" mesajı eklenir, ancak iş parçacığı, şu anda çalıştırılan yöntem geri dönene kadar "bitiş" eylemini seçip yürütmek için serbest değildir, yani İş Parçacığı serbest bırakılır mevcut görev.
ondestroy() faaliyetiniz yok edilmeden önce aldığınız son çağrıdır.
Bu, ya etkinlik bittiği için (birisi çağrıldığı finish() için ya da sistem yerden kazanmak için bu etkinlik örneğini geçici olarak yok ettiği için olabilir. Bu iki senaryoyu isFinishing() yöntemle ayırt edebilirsiniz .
A ve B olmak üzere iki aktivite varsa ve akışınız A> B'den gidiyorsa; ve B = A çağrıları finish().
Sonra,
Çağrdığınız yöntem finish()Mark'ın bahsettiği gibi çalışacaktır. Ve geri arama akışı şu şekilde olacaktır -
onPause() nın-nin activity AonRestart()> onStart()> onResume()Etkinliği Bfinish()aramadıysanız activity A; burada sadece onStop()biri Activity Aaranacak. Ederken, denilen bu durumda, içinde finish()gelen Activity A; Yani onStop()ve onDestroy()her ikisi için çağrılır activity A.