我一直坚持这个问题。我正试图在我的清单中注册一个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()
功能,因为我希望此接收器与任何活动分开运行。
任何帮助或关于该主题的示例链接都将不胜感激!
答案 0 :(得分:1)
documentation表示ACTION_BATTERY_CHANGED
无法在清单中注册,您必须在Java代码中的有效Context中注册。
好消息是,上下文不仅仅包含在活动中,如果您愿意,您可以在服务中使用registerReceiver(),或者在其他任何您拥有有效上下文的地方使用。