将服务绑定到BroadcastReceiver

时间:2013-03-13 11:01:58

标签: android broadcastreceiver android-service android-alarms

我有一些服务类,可以注册多个警报。

在我的 BroadcastReceiver 课程中,我希望 onReceive ()方法调用服务类的某些方法。

然而,我不知道如何将它们绑在一起。我试图让 BroadcastReceiver 成为一个内部类,但后来我遇到了更多错误,根本无法触发警报。

由于

2 个答案:

答案 0 :(得分:6)

查看http://developer.android.com/reference/android/content/BroadcastReceiver.html生命周期。 BroadcastReceiver仅用于处理消息。这意味着它的生命很短暂,蚂蚁也是无国籍的。所以你不能绑定它。

无论如何,您可以尝试启动BroadcastReceiver的服务形式onReceive(Context context, Intent intent)方法, 像这样:

    public void onReceive(Context context, Intent intent) {
        Intent intent2 = new Intent(context, GCMService.class);
        intent2.putExtras(intent);
        context.startService(intent2);
}

然后a =服务应处理广播消息。

答案 1 :(得分:2)

来自http://developer.android.com/guide/components/bound-services.html

  

注意:只有活动,服务和内容提供商才能绑定到服务 - 您无法绑定到广播接收器中的服务。