2012-03-12 43 views
1

我有2個活動A-> B。 A是父母的活動,B就像「設置」。在B中,用戶做出一些更新應用程序數據庫的選擇。 A必須閱讀數據庫才能根據此設置一些文本瀏覽。Android - 兒童活動更新數據庫onDestroy和父母讀取onResume

我認爲會工作的是這樣的:在B中,用戶設置他的選擇(使用一些切換按鈕),onDestroy函數讀取按鈕的狀態並更新數據庫(我沒有「提交更改按鈕「,所以我使用onDestroy)。然後在A的onResume函數上調用讀取數據庫並更新字段的例程。

問題是,變化在A中不可見。但是如果我再次返回到B並返回到A而沒有任何新的變化,那麼這些變化是可見的和正確的。

那麼,怎麼了,應該做什麼?我可以使用A和B之間的虛擬活動,這可能會起作用,但我不知道這是否很好實施。提前謝謝!

回答

1

儘量不要用onDestroy()方法,例如onPause()onStop()方法。看看這個:

enter image description here

+0

非常感謝! – george 2012-03-12 18:41:28

+1

因爲一個活動在運行時不能被殺死,並且要經過至少onPause狀態,所有的數據保存都應該在onPause – 2013-01-06 07:24:08

1

如果您不希望實現一個提交按鈕,您將得到更好的onPause(),而不是onDestroy()更新數據庫。

@Override 
    protected void onPause() { 
     super.onPause();  
      if (isFinishing()) { 
       //Database updates here 
      } 
     } 
    } 
+0

你沒錯!非常感謝你! – george 2012-03-12 18:40:53