簡體   English   中英

返回上一個活動的最后狀態

[英]Returning back to last state in previous activity

我有兩個活動A和B。啟動應用程序時,活動A被加載,並且我從數據庫中加載了數據。 我可以沒有任何問題地進入活動B,但是當我回到活動A時,會查看一下舊數據,然后重新加載活動。

任何想法如何解決這個問題?

在從DB開始加載數據之前,清除所有字段。從加載數據開始花費的時間很少,並且在清除之前的字段之前。

您可以在此處將所有字段都留為空白。

您需要重寫onSaveInstanceState(Bundle savedInstanceState)並將您想要更改的應用程序活動狀態值寫入Bundle參數,如下所示:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  /* Save UI state changes to the savedInstanceState.
  * This bundle will be passed to onCreate if the process is
  * killed and restarted activity
  */
  savedInstanceState.putString("YourString", "");

  // etc...
  // etc...
}

Bundle本質上是一種存儲NVP(“名稱-值對”)映射的方法,它將被傳遞給onCreate()以及onRestoreInstanceState(),您可以在其中提取如下值:

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  // Restore UI state from the savedInstanceState.
  // This bundle has also been passed to onCreate.

  String myString = savedInstanceState.getString("YourString");
}

通常,您將使用此技術來存儲應用程序的實例值(選擇,未保存的文本)等。

暫無
暫無

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

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