【问题标题】:How do I return data from a GCMListenerService to an Activity using a ResultReceiver?如何使用 ResultReceiver 从 GCMListenerService 将数据返回到 Activity?
【发布时间】:2015-11-15 20:16:46
【问题描述】:

我有一个 GCMListenerService,它将用于将通知从我的服务器推送到我的客户端。我需要这个监听器来中断正在 Presenter 中运行的线程(我的项目是使用 MVP 模式构建的)。但是,我不知道如何将结果接收器传递给服务,因为我认为我不能覆盖 onStartCommand()。另一种选择是 LocalBroadCast 管理器,但我希望即使活动暂停时消息也能通过,所以我认为本地广播管理器不会起作用。

【问题讨论】:

    标签: java android servlets push-notification google-cloud-messaging


    【解决方案1】:

    创建抽象广播接收器如下:

    public abstract  class DataReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            onDataRefresh(intent);
        }
        protected abstract void onDataRefresh(Intent intent);
    }
    

    并在活动中使用如下:

    class Acb extends Activity{
    onCreate(){
    DataReceiver data = new DataReceiver(
        @Override
        protected void onMenuItemUpdate(Intent intent) {
    
    });
    }
    }
    

    无论您使用sendBroadcast(intent); 传递的数据是什么,您都可以在此处访问这些数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      相关资源
      最近更新 更多