【发布时间】:2020-09-28 13:24:52
【问题描述】:
我有一项不时更新数据的服务。我目前使用 sharedPreferences 来存储数据并使用 LocalBroadcast 在服务和 UI 之间进行通信。
我想改进它以使用 MutableLiveData,类似这样。
class MyService : Service() {
private var mMyServiceCreatedData = MutableLiveData<String>()
private var mData = ""
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
....
mData = someData
mMyServiceCreatedData.postValue(mData)
}
}
我知道有 viewModel,但在这种情况下,它是生成数据的服务而不是 viewModel,所以我不知道它是如何为服务工作的。是否可以在 UI/MainActivity/Fragments 中观察 Service 创建的数据?
【问题讨论】:
-
你能不能把它放到
companion object然后在你想要的地方做MyService.mMyServiceCreatedData? -
@tyczj 永远不会那样做。这就是现在应该这样做的方式。
标签: android android-service android-lifecycle android-livedata android-service-binding