簡體   English   中英

Android調用finish()時如何保存和恢復Activity的狀態?

[英]Android how to save and restore state of Activity when calling finish()?

在Android中,從活動A開始,如果我開始新的活動B,Android將自動保存活動A的所有狀態。因此,當我單擊后退或從活動B調用finish()時,活動A將恢復到我啟動時的狀態活動B(例如:活動A中ScrollView的位置,或ProgressBar的值)。 在Activity AI中有一個ProgressBar顯示某個任務的進度,然后如果我從Activity B返回,ProgressBar將被恢復並繼續運行。

現在我想要的是,從活動A,我將調用finish()。 如何像Android一樣保存活動A的所有狀態(包括我上面描述的ProgressBar),所以當我再次啟動Activity A時,我可以在調用finish()之前恢復所有內容,並且我的ProgressBar繼續運行?

我可以將活動A推送到Android中的堆棧,然后將其彈出? 誰知道如何實現這一目標?

單擊后退按鈕不要調用完成。

而是調用方法“moveTaskToBack(false)”。 這將“最小化”您的應用程序。 下次打開應用程序時,應用程序將以之前的狀態打開。

finish()是說你的活動是“完成並應該關閉”。 如果你還沒有完成,就不要調用finish()

當您從活動A轉到活動B時,Android不會殺死活動A.活動A仍然存在於后台。 但是,如果Android需要內存,它可能隨時被殺死。

要保存活動的狀態,您必須手動執行此操作。

這是一個類似的問題,答案很好: 使用Save Instance State保存Android Activity狀態

如果要完成活動然后再次啟動它只是為了加載一些新配置,可以調用activity的recreate()方法而不是調用finish() 調用recreate()將調用onSaveInstanceState()和onRestoreInstanceState(),幫助您恢復以前的配置。

您可以查看此答案以獲取更多詳細信息: 如何重新啟動Android活動

暫無
暫無

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

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