ZHANGHUI54643 2011-04-13 21:01
浏览 386
已采纳

捕获开机启动事件后通过新线程注册ContentObserver后,仍然无法收到onChange的通知。请各位解答

简要介绍一下这个问题产生的原因,我要实现的功能:记录向外发送的短信内容。

系统提供了接收短信的事件通知“android.provider.Telephony.SMS_RECEIVED”(我在这个程序里也通过这个能力记录接收到的短信内容),但是没有提供短信发送的事件。于是我的办法是:在开机时向系统注册一个ContentObserver,用于监听"content://sms"是否发生了变化。一旦发生变化就判断是否是有新发送的短信,通过这种方式实现记录发送短信的内容。

但是,我在拦截开机启动的BroadcastReceiver中注册ContentObserver一直不成功,网上查询似乎不能在BroadcastReceiver做耗时的操作,于是乎在BroadcastReceiver新开一个线程,在这个新线程中向context注册ContentObserver。真机测试注册ContentObserver成功。

但是悲剧的是:虽然注册成功了,但是无论是发送和接收短信,这个ContentObserver的onChange方法一直没有被调用。

有没有能提供定位的思路,先谢谢各位了。

  • 写回答

6条回答 默认 最新

  • springof 2011-04-15 17:43
    关注

    或许是因为没有写什么的。
    我上次就是因为没有写这个出了很多问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 怎么获取下面的: glove_word2id.json和 glove_numpy.npy 这两个文件
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug