我正在开发一个Android应用程序,它可以检索调用日志并将其存储在文本文件中。我正在使用ContentObserver来观察更改并在更改后获取更新的条目。如果我接到未接来电,来电并通过拨打电话簿中的号码拨打电话,我就可以正确获取条目。如果我通过单击呼叫日志中的号码拨打电话,则onChange()方法将被调用三次。一旦我在调用之前从调用日志中选择了名称,就会调用onChange(),以便检索上一个事件一次。一旦进行了呼叫,就会检索两次传出事件,共完成三个条目。请建议我一个解决方案。 谢谢!
答案 0 :(得分:0)
你在哪个URI中注册了观察者。是android.provider.CallLog.Calls.CONTENT_URI吗?如果是这样,那么onChange()方法只会被调用一次。
此外,依赖内容提供商并不是一个好主意。请参阅http://android-developers.blogspot.com/2010/05/be-careful-with-content-providers.html。您可以尝试使用带有操作的广播接收器,而不是使用内容观察者 android.intent.action.PHONE_STATE android.intent.action.NEW_OUTGOING_CALL