我正在构建一个应用程序来监听CallLog.Calls内容提供程序中的更改。因此,对此内容提供程序的任何更改都将通知应用程序的观察者,这将插入数据已更改。
但是有一个问题,应用程序在未运行时会收到通知,即应用程序在未运行时不会捕获数据已更改。
所以我的问题是,有没有办法捕获应用程序未运行时更改的数据?例如,我进行了8次调用,并且应用程序未运行,因此已向CallLog.calls内容提供程序添加了8个新数据。那么有一种方法可以在应用程序启动后捕获这8个新数据吗?
谢谢!
答案 0 :(得分:1)
如果在来电时触发了Intent
,您可以使用BroadcastReceiver
让您的应用响应并在您的清单中创建IntentFilter
。
或者只是在您的应用启动时查询提供商...
编辑:
ACTION_PHONE_STATE_CHANGED
是您可以监听的TelephonyManager
意图,并检查它是否为TelephonyManager.CALL_STATE_RINGING
。