2010-08-14 272 views
3

使用此示例代碼,活動被告知完成,但之後繼續執行並顯示消息。我試圖理解爲什麼會發生這種情況。我能想到的唯一解決辦法是在完成後放置'返回'。活動完成方法等待完成?

public void someMethod() { 
    if(valueIsTrue) { 
     startActivity(new Intent(this, NewActivity.class)); 
     CurrentActitivy.this.finish(); 

     // return; // if uncommented, Toast doesn't show 
    } 

    Toast.maketext(this, "Some message", Toast.LENGTH_SHORT).show(); 
} 

回答

3

你是對的。調用完成()不會立即完成活動。代碼路徑中的所有可達語句都將在活動完成之前執行。當您取消註釋時,Toast不是執行塊的一部分。

+0

順便說一下,有時完成並不會真正完成活動很長一段時間 - 我做了4-5個電話'完成'在我的應用程序中「退出」按鈕在活動消失之前。可能涉及工作線程。嘗試在完成之前停止所有工作線程。 – Kostadin 2012-03-02 21:19:01