2012-10-20 18 views
6

ja studiuje Google IO 2012 code
W jednym z działań (HomeActivity.java) robią co następuje:nie mogę zrozumieć isFinishing

void onCreate(Bundle savedInstance) 
{ 
    if(someCondition) { 
     // start some other activity here 
     finish(); // finish this activity 
    } 

    if(isFinishing()) return; 

    // More code here 
} 

Zastanawiam się, dlaczego nie umieścić return tuż po finish(), ale zamiast sprawdzania isFinishing()?

+0

To jest ... bardzo dobre pytanie. Domyślam się, że umieścili to tam albo dlatego, że * może * być wielokrotnymi wywołania 'finish()', albo ponieważ coś innego może zakończyć tę aktywność przed jej rozpoczęciem. – Eric

Odpowiedz

3

Czynność można zakończyć na kilka sposobów.

finishActivity z działalności, które nazwał startActivityForResult

finishAffinity i finishFromChild

Więc isfinishing jest stosowany w celu uwzględnienia takich przypadkach.

Powiązane problemy