- Я реализовал
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
какие-либо функции, которые будут автоматически обновлять эти данные, как только активность вернется на передний план?
Если нет, каковы другие альтернативы?
Возможно, на этот вопрос уже был дан ответ, но я не смог найти точный случай пользователя для того, чего я пытаюсь достичь здесь.Кроме того, я могу задавать вопрос неправильно, но это объясняет мою путаницу здесь