我的Android應用包括若干活動:M
(主或根),A
,B
,C
... 下面是一個可能的活動導航圖表:機器人重新啓動應用程序
當我的根活動M
正在初始化,我將一些參數(如屏幕尺寸)緩存爲特殊類MyUtils
中的靜態變量,以便稍後在其他活動中使用它們。
Kaboom發生時,我按活動中的主頁按鈕說C
,然後啓動一打應用程序。當我回到我的應用程序時,似乎所有東西都被破壞了。 C.onCreate
方法正在被調用,但緩存的參數似乎被重置。
我想從M
開始,而不是從C
開始,因爲Android在長時間停頓後毀掉了我的應用程序。我怎樣才能做到這一點?
我認爲是這樣的:
// to be put into all my activities but M:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (MyUtils.GetScreenWidth() == -1)
{
// seems like Android killed my app
finish();
return;
}
// Normal initialization.
// Use MyUtils.GetScreenWidth() to align my ui elements.
}
...但我不知道這是最好的方式。你會建議什麼?
我在一年前遇到類似問題,並將值存儲在SharedPreference中解決了問題。 – Durus