我有一堆用戶首選項保存在我的應用程序中的單例對象中。樣本模型看起來是這樣的 -Android活動生命週期問題:何時提交GlobalPreferences
public class UserContext {
public static final String WEBSRV_IP = "TRIMMED";
public static UserContext instance;
// Contains username, password, if they're valid etc.
private LoginDataModel loginModel;
private ArrayList<FacilityDataModel> model;
private FilterDataModel filters;
private UserContext()
{
}
public UserContext getInstance()
{
if(instance == null) {
instance = new UserContext();
}
return instance;
}
// Getters and setters
}
所以現在,當用戶經過申請,我有一堆創建的活動,通過他們的生命週期,利用這些變量和光潔度。 (例如,在onStart()
方法中,我會在提交活動之前檢查用戶是否已登錄)。
我的問題是,Android文檔似乎建議我備份我的onPause()
方法中的任何上下文相關數據。但是每次我自己創建一個新的Activity時,也會調用onPause()
,並且似乎浪費了全部GlobalVariables,只有在下一個活動的onStart()
方法中恢復它們。有沒有辦法確定整個應用程序是否已經進入了後臺?如果不是,你什麼時候保存了所有Globals?
謝謝,
Teja。
我也傾向於同意這一點,雖然我有經驗,當更新幾件事導致一點放緩。 – Maximus 2011-04-20 18:21:27
啊。那麼這可能是我還沒有遇到的情景,這確實提出了不同的解決方案。是什麼導致了減速?許多價值觀是否一次堅持?有幾百或幾千個保存的值? – 2011-04-20 18:45:51
數百是,數千。我應該再限定一點,那就是在發現SQLite數據庫更適合存儲長列表的事情之前。對於一般設置... SharedPreferences最有意義。 – Maximus 2011-04-20 19:15:01