为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 LifecycleOwner 投射到服务类上?

如何将 LifecycleOwner 投射到服务类上?

慕标琳琳 2023-04-26 14:01:17
我想从服务类中选择带有实时数据的房间数据库数据。观察时如何投射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.


查看完整回答
反对 回复 2023-04-26
?
婷婷同学_

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 版本生命周期扩展。


查看完整回答
反对 回复 2023-04-26
?
湖上湖

TA贡献2003条经验 获得超2个赞

添加依赖 implementation "androidx.lifecycle:lifecycle-service:2.2.0"

如果你service()已经扩展了你应该删除它并扩展LifecycleService()

您的服务现在应该如下所示:

class MyService() : LifecycleService() {
    //CODE
    }


查看完整回答
反对 回复 2023-04-26
  • 3 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信