2013-07-03 71 views
0

我已經註冊的廣播接收器像我的應用程序的清單文件:註銷廣播接收機表現

<receiver android:name="com.example.devicecommunication.MainActivity$proximityOffReceiver" android:enabled="true"> 
     <intent-filter> 
      <action android:name="com.example.devicecommunication.PROXIMITYOFF" /> 
     </intent-filter> 
</receiver> 

我已經定義在MainActivity接收器(我想執行的接收器,即使活動不在前臺)。我看到鏈接Android - how to unregister a receiver created in the manifest?。但是,如果我應該明確註銷接收者,每當應用程序退出或按下後退按鈕時,我都感到困惑?提前致謝!

回答

2

我已經在MainActivity中定義了接收器(因爲我希望即使活動不在前臺也能執行接收器)。

由於proximityOffReceiver是一個靜態內部類,事實上,你有它裏面MainActivity並不意味着「當活動是不是在前臺」影響proximityOffReceiver

但我很困惑,如果我應該明確註銷接收器,每次當應用程序退出或按下後退按鈕時?

該問題的接受答案指出,您不「註銷」在清單中註冊的接收方。您啓用或禁用接收器。

因此,在您的情況下,您希望在接收器運行時啓用接收器,並且在不需要接收器時禁用接收器。就你而言,似乎你希望它一直在運行,在這種情況下,你可能永遠不會禁用它。

1

是否註冊或取消註冊接收器取決於您的使用情況。每當應用程序退出/預先設置後退按鈕時,不需要明確註銷接收者。

+0

我很難理解爲什麼,你能解釋更多嗎? – JamisonMan111

1

如果您希望它發生,無論您的活動是否正在運行,您都應該只將接收器放入清單中。如果你只想在你的應用程序啓動後纔打開它,那麼它應該通過你的活動在代碼中註冊。除非您有幾乎所有時間都想要接收的接收器,並且只在短時間內關閉,否則沒有理由在清單中設置後取消註冊。