Android Activity生命周期问题: When to commit GlobalPreferences

标签 android activity-lifecycle

我有一堆用户首选项保存在我的应用程序的单例对象中。示例模型如下所示 -

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
}

现在,随着用户浏览应用程序,我创建了一堆 Activity ,浏览它们的生命周期,利用这些变量并完成。 (例如,在 onStart() 方法中,我在呈现 Activity 之前检查用户是否已登录)。

我的问题是,Android 文档似乎建议我在 onPause() 方法中备份任何与上下文相关的数据。但是 onPause() 每次我自己创建一个新的 Activity 时也会被调用,备份所有 GlobalVariables 似乎很浪费,只能在下一个 Activity 的 onStart()< 中恢复它们 方法。有没有办法确定整个应用程序是否已经进入后台?如果没有,您什么时候真正保存所有全局变量?

谢谢,
泰迦。

最佳答案

我在确定首选项值时保存首选项(使用 SharedPreferences.Editor.commit()),无论是由用户还是应用程序代码。我还没有遇到过将保存首选项延迟到确定有意义之后的某个时间的情况。

关于Android Activity生命周期问题: When to commit GlobalPreferences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5733043/

相关文章:

android - Activity 开始时的动画会跳帧

android - 如何模拟杀戮 Activity 以节省内存?

android - 有没有一种方法可以不使用 onNewIntent 来获取 NFC UID?

android - 带有数字 EditText 字段的警报对话框

Android线程完成回调

java - 如何在我的应用程序中获取 facebook 用户的连接?

java - 短信应用程序 - List_item 错误

android-webview - Android WebView/CookieSyncManager中 session cookie的生命周期

android - 背景不会在多行 TextView 上换行

android - 在 onPause 而不是 onDestroy 中释放资源