【问题标题】: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); 传递的数据是什么,您都可以在此处访问这些数据。