我在一个 Android 应用程序上工作,应该在通知栏中简单地发布一些关于电池的信息。我像所有教程建议的那样开始了这个项目:
- 我创建了一个广播接收器。它处理 UI 的东西。
- 然后我创建了一个 IntentFilter,它只过滤 ACTION_BATTERY_CHANGED 意图
- 然后我简单地用我的主 Activity 的 registerReceiver() 方法注册了 IntentFilter 和 BroadcastReceiver 实例。
它工作得非常好,直到 Activity(注册这两个)停止。通过停止我的意思是,我按下手机上的后退按钮,我假设 onStop() 或/和 onDestroy() 方法被调用。
我的问题是,我怎样才能让 BroadcastReceiver 在 Activity 完成后运行,并且只有在我“强制关闭”应用程序时才停止接收?
更新:
好的,从我认为以前的答案来看,我需要做的是从清单文件而不是从 Activity 启动我的 BroadcastReciever。这是我试图做的,但它根本没有开始接收:
<receiver android:name="com.battery.indicator.BatteryReciever" android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.BATTERY_CHANGED" ></action>
</intent-filter>
</receiver>
name 属性是我的 Reciever 类的整个包路径。动作名称是 Eclipse 的智能感知发现的。所有这些都在<application></application>
xml 的一部分中。
我究竟做错了什么?