[英]OnDestroy() is being called after onCreate() when I start Activity
我正在更新活動 A 的onDestroy()
onDestroy()
更新的本地數據庫。
我的問題是,每當我啟動 Activity B 並完成 Activity A 時,都會在 Activity B 的onCreate()
之后調用 Activity A 的onDestroy()
。由於這個問題,我丟失了銷毀 Activity A 后存儲的數據。
我該如何解決這個問題?
活動一
@Override
protected void onCreate(Bundle savedInstanceState){
//After retrieving User data
//inside onclicklistener
someButton.setOnClickLister( new View.OnClickListener() {
public void onClick(View view) {
finish();
startActivity(this,FamilyInfoActivity.class);
}
}
}
@Override
protected void onDestroy(){
localJson.setStatus(status);
localDBUtil.setLocalJson(this,localJson,connectionId);
super.OnDestroy();
}
活動B
@Override
protected void onCreate(Bundle savedInstanceState){
localJson = localDBUtil.getLocalJson(this,connectionId);
}
您不能依賴onDestroy()
的時間來保存您的更改。 您應該將更改保存在onPause()
中,這是唯一保證被調用的生命周期方法。
此外,如果要將數據從ActivityA
傳遞到ActivityB
,可以使用以下方法之一:
SharedPreferences
中ActivityB
的Intent
中的“extras”中(僅在數據量不太大的情況下) 請刪除onCreate
中的finish()
。 Finish
正在銷毀您的Activity
這就是調用onDestroy
的原因
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.