Android 创建将无限期运行的ContentObserver的最佳方法是什么?

Android 创建将无限期运行的ContentObserver的最佳方法是什么?,android,Android,我希望实现某种ContentObserver,并最大限度地保证它将在后台运行,并在发生更改事件时对其作出响应。最好的方法是什么?我不希望伴随着运行活动来保持服务的活力。我需要不同的优雅方法,优先级是“服务”或“后台线程”将持续运行,或至少持续响应更改事件。类似于BroadcastReceiver,但我的ContentObserver无法在清单中定义。在Android 7.0+上。这将允许您拥有一个JobService,当Uri中的内容发生更改时,该服务将获得控制权,而无需连续运行服务 在Andr

我希望实现某种ContentObserver,并最大限度地保证它将在后台运行,并在发生更改事件时对其作出响应。最好的方法是什么?我不希望伴随着运行活动来保持服务的活力。我需要不同的优雅方法,优先级是“服务”或“后台线程”将持续运行,或至少持续响应更改事件。类似于BroadcastReceiver,但我的ContentObserver无法在清单中定义。

在Android 7.0+上。这将允许您拥有一个
JobService
,当
Uri
中的内容发生更改时,该服务将获得控制权,而无需连续运行服务


在Android 6.0及更高版本上,使用前台服务。

这只是答案的一部分
我想您希望在boot完成服务时启动一些东西,也许吧?不管怎样,希望这有帮助

到目前为止,您都尝试了什么?你做了什么研究?@aliaksei我读了很多关于后台服务的书,但是在新的机器人中,它们似乎不可靠(当启动组件死亡时,它们就会停止)。我需要独立于活动的长时间运行任务来响应ContentObserver事件(而不是广播,通过在清单中定义它似乎更容易),谢谢。我只对7+感兴趣,因此addTriggeredContentUri()似乎很有吸引力。但我能否确保JobScheduler的反应足够快,能够捕获每一个这样的事件?我指的是与电池优化等相关的所有内容。例如,如果我想捕捉内容变化事件,并在一两秒钟内阅读内容?或者确保在下一个事件发生之前阅读内容?@tomcatlxv:“例如,如果我想捕捉内容更改事件,并在一两秒钟内对阅读内容作出反应?”——您无法通过任何方式保证这一点。“或者确保在下一个事件发生之前阅读内容?”--您也无法通过任何方式保证这一点。JobScheduler对此类触发器的典型反应时间是多少?如果我将程序以不同的不太优雅的方式作为一项活动来实施,它可能会“实时”做出反应。所以前台服务可能会更好,即使是7+机器人?我认为这一定是可能的,因为像短信或手机应用程序这样的应用程序确实会“实时”做出反应。它们是如何实施的?我不能给你一个星星,因为我太新了,所以:)无论如何谢谢。@tomcatlxv:“JobScheduler对这种类型的触发器做出反应的典型时间是多少?”--秒,好的,尽管它会根据设备当时的繁忙程度而变化。它可能会“实时”做出反应——不一定。“它们是如何实现的?”--通常不需要
ContentObserver
。您需要一个
ContentObserver
来观察外国提供商,而不是您自己的提供商。接收传入短信的广播接收器一般会比CO反应更快吗?如果是这样的话,如何更好地处理传出的sms而不是ContentObserver(在效率方面)?是的,谢谢。但是,如何保持服务几乎“实时”地运行和响应更改事件呢?