服务不写入SharedPreferences

所以,我有一个在后台处理播放音频文件的服务。

我想能够将服务写入SharedPreferences以便可以根据服务的当前状态更新UI,比如当应用程序从前台 – >后台 – >前台再次运行时。

不幸的是,从服务写入SharedPreferences似乎是不可能的。

我真的不想使用任何静态变量,所以我认为当发生状态变化时,将服务的状态写入后台将是最佳的。

这里是SharedPreferences代码,它真的没什么新意。

 private fun saveAudioServiceStateToSharedPreferences(isRunning: Boolean) { d { "saving state: [${isRunning}]" } val sharedPref = PreferenceManager.getDefaultSharedPreferences(this) val editor = sharedPref.edit() editor.putBoolean(getString(R.string.preference_is_audio_service_running), isRunning) editor.commit() } fun isAudioServiceRunning(context: Context): Boolean { val sharedPref = PreferenceManager.getDefaultSharedPreferences(context) val isRunning = sharedPref.getBoolean(context.getString(R.string.preference_is_audio_service_running), false) if (!isRunning) { d { "Audio service is NOT RUNNING" } resetAudioManager() } else { d { "Audio service is RUNNING" } } return isRunning }