0

我需要在关闭应用程序时更改服务的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); 
    } 
+0

尝试用'apply()'替换'commit()' –

+0

我已经这样做了 - 没有工作:/ –

+0

@ ShaneMonksO'Byrne确保在SharedPreferences的名称中没有错字 –

回答

1

你写机器人:stopWithTask = “假”的服务清单?

+0

问题的有趣解决方案:当清单中有android:stopWithTask =“true”时,永不会调用onTaskRemoved。为了解决这个问题,我更改为android:stopWithTask =“false”,并且在更改onTaskRemoved()中的Shared preferences之后,我还添加了stopSelf()行。谢谢埃尔多尔 –