0

我的目标是特定活动的 onCreate 将开始运行异步任务“BackgroundTask”。我想确保在任何给定时间只有一个 BackgroundTask 会运行,所以在调用 .execute 之前,我想先检查一个布尔值是否被触发以指示另一个已经在运行。

我希望这个异步任务能够永久运行,即使应用程序当前不在屏幕上。只有当用户按下按钮结束它时,它才应该关闭,或者可能强制关闭整个事物。

问题:

我可以通过转到主屏幕或进一步进入或移出我的应用程序中的所有活动来创建一个布尔值,该布尔值将永远不会被重置?
我不太了解 Android 何时或为何会丢失应用程序中保存的变量。

4

1 回答 1

1

您可以将此布尔值保存在您的首选项中,如下所示:

        boolean booleanValue = true;
    String somePreferencesKey = "SOME_PREFERENCES_KEY";
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
    pref.edit().putBoolean(somePreferencesKey, booleanValue).commit();

然后,在将来的任何时候,您都可以从保存的首选项中获取保存的布尔值,如下所示:

        boolean booleanValue;
    String somePreferencesKey = "SOME_PREFERENCES_KEY";
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
    booleanValue = pref.getBoolean(somePreferencesKey, false);

希望这能解决您的问题。

谢谢,

穆罕默德。

于 2012-08-28T04:34:25.870 回答