我想從服務類中選擇帶有實時數據的房間數據庫數據。觀察時如何投射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
提交
取消