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

我想从服务类中选择带有实时数据的房间数据库数据。观察时如何投射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());

    }

});


慕标琳琳
浏览 108回答 3
3回答

呼如林

LifecycleService你可以这样使用:将此依赖项添加到您的app/build.gradle文件中:dependencies {     implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"     }扩展您的服务LifecycleService:class MyService extends LifecycleService {     ... }之后,您将能够观察您的LiveData.

婷婷同学_

将此依赖项添加到您的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 版本生命周期扩展。

湖上湖

添加依赖 implementation "androidx.lifecycle:lifecycle-service:2.2.0"如果你service()已经扩展了你应该删除它并扩展LifecycleService()您的服务现在应该如下所示:class MyService() : LifecycleService() {     //CODE     }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java