2012-10-20 17 views
6

Ho studiato Google IO 2012 code
In una delle attività (HomeActivity.java) che stanno facendo come segue:Non riesco a capire isFinishing

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

    if(isFinishing()) return; 

    // More code here 
} 

Mi chiedo perché non mettono return subito dopo finish() ma controllando invece isFinishing()?

+0

Questa è ... un'ottima domanda. La mia ipotesi è che lo abbiano messo lì perché * potrebbero * essere più chiamate 'finish()', o perché qualcos'altro potrebbe finire questa attività prima che inizi. – Eric

risposta

3

Un'attività può essere completata in diversi modi.

finishActivity da un'attività che ha chiamato startSubActivity

finishAffinity e finishFromChild

Così isfinishing viene utilizzato per tenere conto di tali casi.

Problemi correlati