2009-12-15 90 views
2

我需要在我的活动结束时处理/抓住意图。所以我正在看服务或BroadcastReceiver。如何使用服务或广播接收器的意图?

是否有可能“接收”服务本身的意图?我试图搜索,但找不到有用的东西。

对于BroadcastReceiver,我不完全确定它是如何在Activity外工作的。它取决于活动正在开放/运行吗?它可以自行运行吗?假设我的Activity被Android(或任务杀手级应用程序)杀死,BroadcastReceiver是否仍然收到意图并处理它们?

我已经使用了BroadcastReceiver作为控件,但是这次我不想使用控件。

我的目标是让用户打开活动来设置一些选项。从那里,他们将能够关闭活动,但我仍然能够处理系统发出的意图。

我对Android开发还相当陌生,所以我可能离我需要的地方太远了。

我是否错了?

回答

8

广播接收器是可以独立于活动和服务运行的应用程序组件,因此您描述的用例肯定受支持。

如果您注册了要在receiver清单节点来处理广播意图的intent-filter标签,它会接收所有即使你的应用程序是完全死的匹配广播意图(不活动或服务)。

以下代码片段显示了如何将广播接收器添加到清单中以侦听广播Intent,而与运行的Activity或Service无关。

<receiver android:name=".MyBroadcastReceiver"> 
    <intent-filter> 
    <action android:name="com.example.project.MY_BROADCAST_ACTION" /> 
    </intent-filter> 
</receiver> 

在你的广播接收器实现,当你指定一个意图过滤器的意图动作是广播onReceive处理器将被调用。

注意:某些系统广播无法以此方式捕获,但一般来说,这是您在没有运行“活动”时响应系统事件的方法。

+0

谢谢。男孩我走了。 – 2009-12-15 20:14:49

+0

MY_BROADCAST_ACTION是一项活动或其他任何活动 – 2011-02-22 13:12:13