如何使用ResultReceiver将数据从GCMListenerService返回到Activity?

时间:2015-08-21 19:20:29

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

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

1 个答案:

答案 0 :(得分:0)

按如下方式创建抽象BroadcastReceiver:

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