从服务中的onTaskRemoved更改SharedPreferences
问题描述:
我需要在关闭应用程序时更改服务的sharedpreference。这基本上是为了检查应用程序是否强制关闭(从最近的应用程序列表中移除),而服务正在运行。然而,共享偏好似乎没有经过?可能这是因为SharedPreferences在活动/组件关闭之后不可用,并且服务是从应用程序关闭的最后一件事情?从服务中的onTaskRemoved更改SharedPreferences
这里是onTask片断:
@Override
public void onTaskRemoved(Intent rootIntent) {
SharedPreferences sharedPreferences = (SharedPreferences) getApplicationContext().getSharedPreferences("SkiCompanionPreferences", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor;
editor = sharedPreferences.edit();
editor.putBoolean("recording", false).commit();
super.onTaskRemoved(rootIntent);
}
答
你写机器人:stopWithTask = “假”的服务清单?
+0
问题的有趣解决方案:当清单中有android:stopWithTask =“true”时,永不会调用onTaskRemoved。为了解决这个问题,我更改为android:stopWithTask =“false”,并且在更改onTaskRemoved()中的Shared preferences之后,我还添加了stopSelf()行。谢谢埃尔多尔 –
尝试用'apply()'替换'commit()' –
我已经这样做了 - 没有工作:/ –
@ ShaneMonksO'Byrne确保在SharedPreferences的名称中没有错字 –