-1

我试图在我的清单中注册一个 BroadcastReceiver,但它没有发生。在尝试手动编写 xml(但失败)后,我只需单击 Eclipse 的工具并像这样从 Eclipse 的 GUI 添加我的接收器(我没有手动编写任何代码):

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

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

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

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

4

1 回答 1

1

文档指出ACTION_BATTERY_CHANGED 无法在清单中注册,您必须从 Java 代码中的有效上下文中注册。

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

于 2012-08-04T17:07:27.160 回答