首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FCM Android后台处理推送通知

FCM Android后台处理推送通知
EN

Stack Overflow用户
提问于 2016-11-22 02:09:56
回答 1查看 255关注 0票数 0

我有一个问题,我真的理解推送通知的功能和它们的使用;但是,我有这种情况,当推送通知到达时,我完美地点击它,我更新活动,我的问题是推送通知到达,用户没有推送推送通知,而是直接打开应用程序;当发生这种情况时,活动不会更新。有没有什么嵌入式或实验性的方法可以让后台的活动在我点击推送时更新它的功能?

简而言之,我寻找的是当推送到来时,更新活动(后台)的组件,当打开应用程序时,应该在不需要按下推送通知的情况下更新应用程序;也就是说,推送通知将只提供信息,但用户不会推送通知,但它将打开应用程序,并在其中修改操作,就像它按下推送一样。

谢谢并致以问候。

EN

回答 1

Stack Overflow用户

发布于 2016-11-22 02:50:43

当推流到达时,通过您的FirebaseMessagingService类的onMessageReceived方法触发后台服务。尽管FirebaseMessagingService本身是一个服务类,但在这种情况下,您可以只使用您的FirebaseMessagingService类。在此场景中,当您的后台任务完成后,您将通过推送通知用户。

下面是关于如何使用FirebaseMessagingService类解决这个问题的基本框架。

代码语言:javascript
复制
  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类中设置首选项值。在这种情况下,当activity打开时,您可以检查是否设置了首选项值,无论是否单击了推送,您都可以进行更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40726682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档