在检索到数据后更新到前台的活动

时间:2018-11-20 20:37:58

标签: java android rx-java2

  • 我已经实现了一个Service来接收来自 服务器。
  • 我目前正在使用广播接收器发送数据。广播侦听器正在更新Activity就好了。但是,当活动不在“ onResume”状态下发送数据时,不会接收到数据。
  • 我对使用RXjava感兴趣,因为我相信它可以解决问题,但不知道从哪里开始。

问题: 如果活动不在前景上,则该活动不会更新。

不在前台:这意味着我已经调用unregisterReceiver来注销我的onPause方法。

我当前的用户情况:我正在使用Service来拦截使用FCM从服务器发送的通知

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    private static final String TAG = "[" + MyFirebaseMessagingService.class.getName() + "]=";

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public void onNewToken(String token) {
        Log.d(TAG, "Refreshed token: " + token);
        }

    /**
     * Handle time allotted to BroadcastReceivers.
     */
    private void handleNow() {
        Log.d(TAG, "Short lived task is done.");
    }

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {


        Log.d(TAG, "From: " + remoteMessage.getFrom());

        // Check if message contains a data payload.
        if (remoteMessage.getData().size() > 0) {
            Log.d(TAG, "Message data payload: " + remoteMessage.getData());

            // Handle message within 10 seconds
            handleNow();
        }

        // Check if message contains a notification payload.
        if (remoteMessage.getNotification() != null) {
            Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
        }

        // <-----------RX JAVA Observable Implementation----------->
        // I would like to use Rx java to send data to my activity ONLY if the activity is in the foreground
        // because data will be used to update the UI
    }

    @Override
    public void onDeletedMessages() {
        super.onDeletedMessages();
    }
}

我调查了RXjava,发现该库负责异步操作,但是我很好奇的是:
一旦活动回到前台,RXjava中是否有任何功能可以自动更新该数据?

如果没有,还有哪些其他选择?

也许这个问题已经被回答了,但是我在这里找不到要实现的精确用户案例。另外,我可能会问错这个问题,但这只是在这里解释了我的困惑

0 个答案:

没有答案