Android Can';不要注销ContentObserver
这是我在服务中使用的代码:Android Can';不要注销ContentObserver,android,sms,contentobserver,Android,Sms,Contentobserver,这是我在服务中使用的代码: 服务启动并运行以下代码: SmsObserver smsSentObserver = new SmsObserver(new Handler(), this); this.getContentResolver().registerContentObserver(Uri.parse("content://sms"), true, smsSentObserver); SmsObserver smsSentObserver
SmsObserver smsSentObserver = new SmsObserver(new Handler(), this);
this.getContentResolver().registerContentObserver(Uri.parse("content://sms"), true,
smsSentObserver);
SmsObserver smsSentObserver = new SmsObserver(new Handler(), this);
this.getContentResolver().unregisterContentObserver(smsSentObserver);
SmsObserver smsSentObserver = new SmsObserver(new Handler(), this);
this.getContentResolver().registerContentObserver(Uri.parse("content://sms"), true,
smsSentObserver);
SmsObserver smsSentObserver = new SmsObserver(new Handler(), this);
this.getContentResolver().unregisterContentObserver(smsSentObserver);
然后服务停止self()
问题:ContentObserver未注销&保留以接收onChange方法
附加信息:以前一切正常,这与KitKat有关,或者这里出了什么问题
感谢你为你的观察者创建了一个不同的对象,这可能就是它给你带来麻烦的原因 在服务中保留对
SmsObserver
的引用,并使用该变量调用unregisterContentObserver
这应该可以解决您的问题谢谢您的回答,我也在想这个问题,但问题是我无法保持服务运行,因为这些方法可以随时调用,还有其他方法吗?好的,从您的回答中得到启发,我找到了一个解决方案:我将创建一个持久服务并将注销代码放入onDestroy()中方法,因此每次停止服务时,ContentObserver都会被注销,但该服务带有标志Start\u Sticky以使其持久化即使使用此方法,ContentObserver仍不会被注销,我不明白为什么,我在考虑一个特定于Rom的问题,但我不确定,因为其他人已经测试过了&同样的错误也发生了-使用适用于Galaxy S4I的Rom Google Play Edition Android 4.4.4,我的SGS4默认Rom与4.4.2有类似之处,它工作正常:奇怪。。。我希望我是唯一一个有这个问题的人,或者我希望这与安卓4.4.4无关。。。