我想从服务类中选择带有实时数据的房间数据库数据。观察时如何投射LifecycleOwner?repositoryDatabase.getTimeline().observe(this, timelineList -> { if (timelineList != null && timelineList.size() >= 10) { JSONArray arrayTimeline = new JSONArray(); for (TimelineEntity timeline : timelineList) { JSONObject objectTimeline = new JSONObject(); try { objectTimeline.put("doku", timeline.getIdDokumen()); objectTimeline.put("entrydate", timeline.getEntryDate()); objectTimeline.put("lat", timeline.getLat()); objectTimeline.put("lng", timeline.getLng()); arrayTimeline.put(objectTimeline); } catch (JSONException e) { e.printStackTrace(); } } onUpdateLocation(arrayTimeline.toString()); }});
3 回答
呼如林
TA贡献1798条经验 获得超3个赞
LifecycleService
你可以这样使用:
将此依赖项添加到您的app/build.gradle文件中:
dependencies { implementation "androidx.lifecycle:lifecycle-extensions:2.0.0" }
扩展您的服务LifecycleService
:
class MyService extends LifecycleService { ... }
之后,您将能够观察您的LiveData
.
婷婷同学_
TA贡献1844条经验 获得超8个赞
将此依赖项添加到您的app/build.gradle文件中:
implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version"
如androidx.lifecycle 发布页面中所述
版本 2.2.0 ~~ 2020 年 1 月 22 日~~ 自 2.1.0 以来的重要变化artifact 现在应该被视为完全弃用。我们强烈建议根据您需要的特定生命周期工件(例如,如果您使用 LifecycleService,则生命周期服务;如果您使用 ProcessLifecycleOwner,则生命周期-过程)而不是生命周期扩展,因为未来不会有 2.3.0 版本生命周期扩展。
湖上湖
TA贡献2003条经验 获得超2个赞
添加依赖 implementation "androidx.lifecycle:lifecycle-service:2.2.0"
如果你service()
已经扩展了你应该删除它并扩展LifecycleService()
您的服务现在应该如下所示:
class MyService() : LifecycleService() { //CODE }
添加回答
举报
0/150
提交
取消