从清单注册并启动广播接收器

时间:2012-08-04 16:58:31

标签: java android broadcastreceiver

我一直坚持这个问题。我正试图在我的清单中注册一个BroadcastReciever,但它不会发生。在尝试手动编写xml(并且失败)之后,我只需单击Eclipse的工具并从Eclipse的GUI中添加我的接收器(我没有手动编写任何代码):

<receiver android:name="MyReciever" android:enabled="true">
    <intent-filter>
        <action android:name="android.intent.action.BATTERY_CHANGED"/>
    </intent-filter>
</receiver>

我尝试做的是捕获系统发出的所有BATTERY_CHANGED意图。但它根本没有开始接收。

现在请告诉我,我应该在清单/接收器/活动代码中添加任何内容,以使系统实例化,并启动此接收器工作吗?

我不想使用registerReciever()功能,因为我希望此接收器与任何活动分开运行。

任何帮助或关于该主题的示例链接都将不胜感激!

1 个答案:

答案 0 :(得分:1)

documentation表示ACTION_BATTERY_CHANGED 无法在清单中注册,您必须在Java代码中的有效Context中注册。

好消息是,上下文不仅仅包含在活动中,如果您愿意,您可以在服务中使用registerReceiver(),或者在其他任何您拥有有效上下文的地方使用。