2016-11-21 5 views
0

У меня проблема, я действительно понимаю функциональность push-уведомлений и их использование; Но у меня есть такая ситуация, когда приходит push-уведомление, и я нажимаю на него совершенным, я обновляю действие, проблема заключается в том, что появляется push-уведомление, и пользователь не нажимает push-уведомление, но открывает приложение напрямую; Когда это происходит, активность не обновляется. Есть ли какой-либо метод, встроенный или экспериментальный, который просто активирует действие в фоновом обновлении его функциональности, когда я нажимаю кнопку «push»?Фоновая обработка push-уведомления на FCM Android

Вкратце, я ищу, что, когда наступает приход, обновляйте компоненты активности (фона), при открытии приложение должно быть обновлено без необходимости нажатия push-уведомления; То есть, push-уведомление будет только информативным, но пользователь не будет нажимать push-уведомление, но он откроет приложение, и в нем он будет перерабатывать действия, как это было бы, если бы он нажал кнопку push.

Спасибо и приветствую.

ответ

0

Когда при нажатии происходит запуск фоновой службы из вашего метода onMessageReceived класса FirebaseMessagingService. Хотя FirebaseMessagingService сам является классом Service, в этом случае вы можете просто использовать свой класс FirebaseMessagingService. В этом случае вы уведомляете пользователя через push после завершения фоновой задачи.

Вот базовый скелет о том, как вы должны его решить, используя свой класс FirebaseMessagingService.

public class PushFirebaseMessagingService extends FirebaseMessagingService { 

    // Define the listener interface 
    interface BackgroundTaskCompletionListener<T> { 
     void requestComplete(T object); 
    } 

    @Override 
    public void onMessageReceived(final RemoteMessage remoteMessage) { 
     doBackgrundTask(new BackgroundTaskCompletionListener<Boolean>(){ 
      @Override 
      public void requestComplete(Boolean object) { 

      } 
     }); 
     notifyUser(remoteMessage); 
    } 

    public void doBackgrundTask(BackgroundTaskCompletionListener mBackgroundTaskCompletionListener){ 
     boolean taskcomplete = false; 

     //do your task 

     if(mBackgroundTaskCompletionListener!=null){ 
      mBackgroundTaskCompletionListener.requestComplete(taskcomplete); 
     } 
    } 

    public void notifyUser(RemoteMessage remoteMessage){ 
     //your notification 
    } 

} 

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

+0

Но если вы удалите приложение, которое произойдет? – FABiO

+0

Может ли кто-нибудь мне помочь? – FABiO

+0

Если вы удалите приложение, все это исчезнет для этого приложения, включая предпочтения и все другие связанные с приложением данные. Я не понимаю вашего вопроса о том, что удаление связано с вашим push-уведомлением или чем-то еще. – saiful103a

Смежные вопросы