Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保持Android通话记录中某些号码的清除_Android_Calllog - Fatal编程技术网

保持Android通话记录中某些号码的清除

保持Android通话记录中某些号码的清除,android,calllog,Android,Calllog,我想从后台检测通话并从通话记录中删除某些号码。以下是我考虑过的选择。请告知这些或其他解决方案是否更好/可行 注册电话状态广播接收器。在接收时从呼叫日志中删除号码。问题是,此时可能尚未更新呼叫日志,因此删除将无效 注册电话状态广播接收器。在onReceive中,以某种方式添加延迟,并在一段时间后尝试删除呼叫日志。延迟将使系统有足够的时间添加呼叫日志条目。对我来说,这种方法似乎有点老套,对此不感兴趣 注册电话状态广播接收器。在onReceive中,注册呼叫日志的内容观察者。我的理解是,在接收后,进程

我想从后台检测通话并从通话记录中删除某些号码。以下是我考虑过的选择。请告知这些或其他解决方案是否更好/可行

  • 注册电话状态广播接收器。在接收时从呼叫日志中删除号码。问题是,此时可能尚未更新呼叫日志,因此删除将无效

  • 注册电话状态广播接收器。在onReceive中,以某种方式添加延迟,并在一段时间后尝试删除呼叫日志。延迟将使系统有足够的时间添加呼叫日志条目。对我来说,这种方法似乎有点老套,对此不感兴趣

  • 注册电话状态广播接收器。在onReceive中,注册呼叫日志的内容观察者。我的理解是,在接收后,进程可能随时被终止,因此如果进程被终止,则不会调用content Observators onChange

  • 注册电话状态广播接收器。在onReceive中启动我的服务(如果尚未运行),然后注册内容观察者。删除与content observer onChange中的某些号码匹配的呼叫日志项


  • 谢谢,

    选项4是一个完美的方法。 我建议您在完成工作后停止服务,并在需要时让广播接收器重新启动


    编辑:您可能还注意到,BroadcastReceiver仅用于执行一些小的或轻的工作,因此延迟不是这里的选项。:)

    感谢ashu,我更新了问题,所以选项3现在是选项4。我按照这篇文章的思路思考。还阅读了关于已接受答案的评论,它很重要:@Yash Khanand该帖子中的工作是在没有内容观察员的情况下执行的,因此可以在onReceive()中完成,但我认为这可能不是在某些设备中最好的方式,日志可能会出现一些延迟。!