2009-12-15 58 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