2016-11-21 57 views
0

我有一個問題,我真的瞭解推送通知的功能及其使用;但是,我有這種情況,當推送通知到達並且我點擊它完美時,我更新活動,我有的問題是推送通知到達並且用戶不推送推送通知而是直接打開應用程序;發生這種情況時,活動不會更新。有沒有嵌入式或實驗性的方法可以讓後臺的活​​動更新其功能,就像我點擊推送時一樣?後臺處理FCM上的推送通知Android

簡而言之,我發現當推送到達時,更新活動的組件(背景),當打開應用程序時應該更新而無需按下推送通知;也就是說,推送通知只會提供信息,但用戶不會推送推送通知,但它會打開應用程序,並在其中重新執行與按下推送時相同的操作。

感謝和問候。

回答

0

當推送到達時,將從FirebaseMessagingService類的onMessageReceived方法觸發後臺服務。儘管FirebaseMessagingService本身就是一個Service類,但在這種情況下,您可以使用FirebaseMessagingService類。在這種情況下,一旦完成後臺任務,就會通過推送通知用戶。

以下是有關如何使用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

如果您卸載應用程序,則該應用程序的所有內容都將消失,包括首選項和每個其他應用程序相關數據。我不明白你的問題,卸載與你的推送通知或其他什麼有關。 – saiful103a