簡體   English   中英

發送意圖后,為什么要調用finish()方法?

[英]Why should we call finish() method after sending an intent?

我剛在

Intent wizard = new Intent();
wizard.setClass(this, A.class);
wizard.putExtra("Domain", A.getInstance().B);
startActivity(wizard);
finish();

我們為什么要在這里調用finish()方法? 目的是什么?

finish()活動並應關閉時調用此函數,啟動活動時調用finish()將關閉當前活動,並且在Activity堆棧中將不可用。

在此處輸入圖片說明

finish(); 

finish用於關閉當前活動。就像您正在將數據發送到其他活動/打開新活動並關閉當前活動一樣。

您不是必須要這樣做的。通常,只有當人們想要破壞啟動意圖的活動時,人們才這樣做,但這絕對不是您的情況……

在android的生命周期中,您將看到:

假設您的活動是可見的,則調用finish()方法將調用

onPause() ,然后是onStop() ,最后是onDestroy()

在此處輸入圖片說明

讓我們用幾個引號來理解它

完成 - 完成活動並應將其關閉時調用此方法。 通過onActivityResult()將ActivityResult傳播回發起您的人


onDestroy() -在活動銷毀之前收到的最后一個呼叫。 發生這種情況的原因可能是活動即將結束( 有人在其上執行finish() ,或者因為系統暫時銷毀了此活動實例以節省空間。

當您在活動上調用finish()時,將執行緊隨onDestroy()的方法。例如: onPause() > onStop() >和onDestroy()它們可能與您調用finish()的地方不同!

onDestroy()用於最終清理-釋放您可以自己使用的資源,關閉打開的連接,讀取器,寫入器等。 如果您不覆蓋它,則系統將執行它必須執行的操作。

它告訴您要完成所選擇的活動所以它西港島線調用系統onDestroy()完成該活動后。( 但是,這並不意味着onDestroy()只得到由完成()調用時,系統能做到這一點時,它的運行活動發送到后台狀態后資源不足

此外,還有一些更有趣的問題,例如調用了Activity.finish(),但活動仍保持加載在您可能喜歡的內存

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM