【问题标题】:How can activity get the latest updates from a background service? [duplicate]Activity 如何从后台服务获取最新更新? [复制]
【发布时间】:2021-10-19 09:47:36
【问题描述】:

Android 应用启动更新 Activity 的后台服务。如果应用程序关闭,服务会继续收集数据。当用户重新打开应用程序时,它需要从应用程序关闭时收集的后台服务中的所有数据。实现这一点的最佳方法是什么?

想到的一个想法是使用 SQLite DB。但是,我不确定这将如何工作。事件总线可以工作吗?

【问题讨论】:

标签: java android kotlin


【解决方案1】:

RoomLiveData 在这种情况下会很好地工作。因此,不要从Service 更新您的Activity,而是在Room 数据库中插入数据。然后在Activity 中使用LiveData 观察者,每当Room 数据集发生变化时都会通知该观察者。这使您可以消除 ActivityService 之间的耦合,并以反应方式编写代码。这看起来像

Service

val data = dataCapturedByService
roomDatabase.yourDao().insertData(data)

Activity

// Return type of fetchData is LiveData<YourModel>
roomDatabase.yourDao().fetchData().observe(this, Observer{
   // This will be called every time Room dataset changes
   // Update UI or something else
}

结帐Roomdocumentation and tutorials

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 2015-07-28
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多