我需要尝试在通话结束后获得通话时间。我有一个广播监听器,它使用电话管理器跟踪电话状态,即“摘机”,“空闲”等等。使用此接收器,我可以找出拨出电话何时完成。完成通话后,我启动服务以获取最后一次通话的通话时长。但是,我得到的值是前一个调用的值,而不是刚完成的值。我想我甚至在通过电话更新之前就从calllog DB中取出了。因为如果我以后调用相同的函数并获取值,它会给我正确的时间..我应该在启动服务之前以某种方式延迟吗?如果是,延迟如何以及延迟多少?
答案 0 :(得分:2)
我想出了怎么做。我确保在通话结束后大约2秒钟启动从calllog获取的服务。这样,我得到了正确的值,而不是之前的呼叫持续时间值,因为当时更新了calllog。