2011-03-26 38 views
4

如果在AndroidManifest.xml中聲明瞭BroadcastReceiver,那麼即使在設備啓動時,接收器也可以正常工作,但是如果我強制我的應用程序停止在設置中,接收器似乎也會崩潰。
Android 2.2中的「強制停止」是否也會在應用程序之後進行一些清理(包括BroadcastReceivers或AlarmManager中的應用程序設置的應該廣播我收到的意圖的警報)?
順便說一下,我如何在Eclipse中看到在設備中發送的所有廣播?Android:如果應用程序被殺,BroadcastReceivers會停止嗎?

回答

3

心理,

強制停止不應該用於嘗試從「未運行」狀態測試您的應用程序。我會說這個行爲最好是「未定義」。在應用程序上使用強制停止後,您必須手動重新啓動才能獲得任何可用性(包括BroadcastReceiver),這種情況並不少見。如果您的應用能夠收到BroadcastReceiver事件,包括BOOT_COMPLETE Broadcast,則應該不需要進一步測試它。

我相信強制停止的預期目的是完全停止惱人的應用程序的功能。如果應用程序在後臺運行,通常是因爲它收到大量廣播並重新啓動,難道你不認爲強制停止應該阻止該行爲,直到用戶手動重新啓動應用程序爲止?

此外,我不相信有一種方法可以查看來自Eclipse的Broadcast事件。

+1

謝謝,我會記得Force Stop是一個特例。我嘗試了另一種關閉我的應用程序的方法 - 除以零:) - 一切正常,都是鬧鐘和BroadcastReceiver。 – lapis 2011-03-26 18:29:28

0

在Eclipse中有沒有辦法看到「廣播發送」
此外,如果有清單中註冊廣播您要接收事件,則系統會調用onReceived方法

相關問題