我想要实现的是给用户一个按钮说'开始广播接收',另一个说'停止广播接收'。坚持BroadcastReceiver参考
我注册的BroadcastReceiver为 “android.provider.Telephony.SMS_RECEIVED” 意图( '开始广播接收' 功能):)
incomingSmsReceiver = new IncomingSmsReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
getApplicationContext().registerReceiver(incomingSmsReceiver, filter);
然后我使用unregisterReceiver(为“停止广播接收':
getApplicationContext().unregisterReceiver(incomingSmsReceiver);
正如你可以看到它使用相同的参考文献(private static BroadcastReceiver incomingSmsReceiver;
)。
的问题是:
这只要我的应用程序的过程中不被终止工作正常。当用户点击“开始接收广播”,然后我的应用程序被Android杀死我失去了incomingSmsReceiver
参考(当我运行我的应用程序下一次它默认设置为null
)。当参考丢失时,用户无法停止接收广播。
如何坚持这一参考?如何在通过Android重新创建应用程序的过程后调用getApplicationContext().unregisterReceiver(incomingSmsReceiver);
?
但是''public abstract void unregisterReceiver(BroadcastReceiver receiver)'方法中的Intents没有任何关系。它只获得BroadcastReceiver参考。 – ncreated 2011-12-18 15:59:26
@ ricewind:更新了答案!对不起,错误。 – 2011-12-19 08:12:27