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()行。謝謝埃爾多爾 –