服务不写入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 }