Обновление активности, когда она возвращается на передний план после того, как данные уже получены - PullRequest
0 голосов
/ 20 ноября 2018
  • Я реализовал Service, который получает уведомления, отправленные с сервера.
  • В настоящее время я использую широковещательный приемник для отправки данных.Broadcast Listener обновляет Activity просто отлично.Однако когда данные отправляются, когда 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 какие-либо функции, которые будут автоматически обновлять эти данные, как только активность вернется на передний план?

Если нет, каковы другие альтернативы?

Возможно, на этот вопрос уже был дан ответ, но я не смог найти точный случай пользователя для того, чего я пытаюсь достичь здесь.Кроме того, я могу задавать вопрос неправильно, но это объясняет мою путаницу здесь

...