我有BroadcastReceiver
一次性使用。在onReceive中取消註冊Android廣播接收器會引發「Receiver not registered」
我正在註冊一個活動。我不能將unregisterReceiver()
放在中,因爲即使活動暫停或銷燬,它也必須保持運行狀態。
我想要的廣播接收器註銷本身當它完成,像這樣:
public class SmsReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
// do some code..
context.unregisterReceiver(this)
}
}
但它會導致一個例外:Receiver not registered.
BroadcastReceiver對象遵循與任何其他對象相同的垃圾收集規則。沒有特殊的「拋棄實例」。在`onReceive`中引用`this`給出了與創建對象時相同的結果(嘗試它)。文檔正在討論接收者的*進程*被殺死,而不是接收者對象級別的任何事情。 – blahdiblah 2017-01-10 00:06:35