2012-08-04 37 views
-1

我在这个问题上停留了一段时间。我试图在我的清单中注册BroadcastReciever,但它没有发生。试图手工编写的XML(和失败)后,我只需点击Eclipse的工具,并增加从Eclipse的GUI像这样我的reciever(我没有手工编写任何代码):注册并从清单中启动BroadcastReciever

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

我尝试什么要做的就是捕捉系统发出的所有BATTERY_CHANGED意图。但它根本不开始接收。

现在请告诉我,我应该添加任何东西到清单/ reciever /活动代码,让系统实例化,并开始这个rec​​iever工作?

我不想使用registerReciever()函数,因为我想让这个接收器与任何活动分开运行。

任何帮助,或主题上的示例链接,将不胜感激!

+0

'android:name =“。MyReciever”',不要忘记从'BroadcastReceiver'扩展的类名之前的[点] .... – t0mm13b 2012-08-04 17:17:17

回答

1

documentation指出ACTION_BATTERY_CHANGED不能可以在清单中注册,必须从您的Java代码中的有效上下文注册此。

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

+0

我删除了我以前的评论,只是为了说谢谢信息。最后一个清楚而有用的答案。再次感谢你。我会尽快接受你的回答,因为StackOverflow使它:) – 2012-08-04 17:13:53