我正在编写一个Android应用程序,它记录视频,然后对录制的视频进行后处理。由于后处理可能需要一段时间(最多一个小时),所以我正在计划一项服务-- JobService使用JobScheduler在手机连接到电源和空闲时运行,即在夜间运行。在新线程上执行长期运行的作业服务。
在实践中,我的预定服务工作非常缓慢。虽然它在系统空闲时运行,但它得到的CPU带宽却很少。另外,我的服务在10分钟后被操作系统停止。
我知道Android Oreo限制了后台处理。谷歌对此有很好的记录。但是,我想知道是否有一种方法可以在系统空闲时运行后台服务。
当系统空闲时,是否有一种运行长后台服务的方法?例如视频后处理?
发布于 2018-08-06 15:37:43
您需要使用Foreground service。
它们是少数几种用于运行长背景任务的方法之一。用户必须知道在他的设备上发生了什么,他应该有能力决定是否停止它。
您可以阅读如何实现基本的前台服务这里,并且在互联网上有很多指南介绍如何以一种高级的方式实现它们。
请记住,即使是前台服务也可以被操作系统停止,如果系统内存压力很大,而只剩下要破坏的东西是前台服务。因此,如果发生这种情况,您应该始终有一个恢复过程。
https://stackoverflow.com/questions/51710298
复制相似问题