當我的應用程序被其他進程終止時,我可以防止應用程序恢復嗎?當從後臺恢復時重新啓動應用程序
我有問題,我有Singleton
類實例在Application class
,它通過應用程序持有我關於用戶和東西從API
收集的所有信息。當我從後臺打開應用程序(如果它被某個進程殺死),我在用戶模型(圖片路徑,名稱...)和應用程序壓縮上獲得null
。
對我來說最好的方式就是從啓動屏幕重新啓動應用程序,並重新獲得所有信息,而不是恢復。任何解決方案?
當我的應用程序被其他進程終止時,我可以防止應用程序恢復嗎?當從後臺恢復時重新啓動應用程序
我有問題,我有Singleton
類實例在Application class
,它通過應用程序持有我關於用戶和東西從API
收集的所有信息。當我從後臺打開應用程序(如果它被某個進程殺死),我在用戶模型(圖片路徑,名稱...)和應用程序壓縮上獲得null
。
對我來說最好的方式就是從啓動屏幕重新啓動應用程序,並重新獲得所有信息,而不是恢復。任何解決方案?
我可以防止應用程序在被其他進程殺死時恢復嗎?
有三種方法的應用可以是 「恢復」,通過調用要麼onCreate
,onStart
,或onResume
。哪一個被調用取決於你的應用程序如何被「暫停」,以及在這種狀態下發生了什麼。
onResume
如下,其中當另一個應用被帶到前景發生。
onStart
(onRestart
)如下onStop
,當你的應用程序將不再可見時發生。
onCreate
如下或onStop
如果你的內存是輸給了另一個應用程序。
當我打開應用程序從背景(如果它是由某個進程殺死)用戶模型我 越來越空值(圖片的路徑,名稱...)
嘗試在onSaveInstanceState
堅持這個用戶數據
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putString(STATE_USER, mUser);
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
和恢復它在任一onCreate
或onRestoreInstanceState
static final String STATE_USER = "user";
private String mUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Check whether we're recreating a previously destroyed instance
if (savedInstanceState != null) {
// Restore user data from saved state
mUser = savedInstanceState.getString(STATE_USER);
}
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState);
text.setText(savedInstanceState.getString(STATE_USER));
}
你能告訴你如何使用的usermodel內部重新創建活動/片段? –
https://developer.android.com/guide/components/activities/index.html下的所有章節 – samosaris