我如何在Android上接收实时API数据更新?

问题描述 投票:1回答:3

我正在通过Android应用接收实时API数据更新。我反对轮询,因为它会耗尽电池电量,而不赞成任何需要每5分钟左右手动检查一次数据更新的操作。是否有一种更简单的方法来实现此目的,而无需应用程序不断轮询或手动检查API端数据是否已更新?

我当时正在考虑在服务器上的某种更新中添加一个侦听器,但是不确定这是否可行。我在网上提到过:How to do live updates on an android app和其他线程,但没有任何真正的帮助。以下是我如何使用可观察对象检索数据的示例:

 getCompositeDisposable().add(getDataManager()
                .getGuestListApiCall(AppPreferencesHelper.getInstance().getCurrentUserId())
                .subscribeOn(getSchedulerProvider().io())
                .observeOn(getSchedulerProvider().ui())
                .subscribe(response -> {

                  // using the parsed response here.
             }, throwable -> {
                    if (!isViewAttached()) {
                        return;
                    }

                    // handle the error here
                    if (throwable instanceof ANError) {
                        ANError anError = (ANError) throwable;
                        handleApiError(anError);
                    }
                }));

任何想法如何解决?任何示例应用程序都可以使用某种虚拟api来帮助查看实时更新结果。

提前感谢!

android android-livedata android-json android-api-levels android-parser
3个回答
0
投票

[如果我了解您的问题,您希望每隔5分钟从API实时获取实时数据,因此必须使用SOCKET.IO希望对您有所帮助。


0
投票

我在聊天应用程序中实现的是,当有人向我发送消息时,我对服务器进行了配置,以使其向我发送带有聊天ID的fcm pushnotification。收到推送通知后,我将调用API以获取聊天的详细信息。此方法可能会帮助您。如果您需要代码详细信息,请告诉我。


0
投票

您应该使用推送通知。它们不仅在您的应用程序在后台运行或未运行时有效,而且在您的应用程序打开时也有效。

不建议使用您自己的Websocket连接,并且在您的应用关闭时也无法使用。

GCM系统基本上在Android设备和Google的GCM / Firebase服务器之间维护单个websocket连接。由于这是Android系统的一部分,因此可以在需要推送通知时唤醒您的应用。

© www.soinside.com 2019 - 2024. All rights reserved.