Android:在系统空闲时安排长时间的后台任务

时间:2018-08-06 14:46:43

标签: android performance android-service

我正在编写一个可录制视频的Android应用程序,然后对录制的视频进行后期处理。由于后期处理可能需要一段时间(最多一个小时),因此我正在安排服务- JobService ,使用 JobScheduler 在手机接通电源并处于空闲状态(即连接到晚上跑。 作业服务在新线程上执行长时间运行的作业。

实际上,我的预定服务运行非常缓慢。看来,尽管它在系统空闲时运行,但获得的CPU带宽却很少。另外,操作系统最多10分钟后,我的服务也停止了。

我知道Android Oreo会限制后台处理。 Google对此进行了详细记录。但是我想知道是否有一种方法可以在系统空闲时运行后台服务。

在系统空闲时,是否可以运行长时间的后台服务?例如视频后期处理?

1 个答案:

答案 0 :(得分:1)

您需要使用Foreground service

它们是运行长时间后台任务的少数方法之一。用户必须知道他的设备上正在发生什么,并且他应该能够决定是否停止它。

您可以阅读如何实现基本的前景服务here,并且互联网上有很多有关如何以高级方式实现它们的指南。

  

请记住,如果系统处于极度的内存压力下,并且前景中唯一要销毁的就是前台服务,那么即使是前台服务也可以被操作系统停止。因此,如果发生这种情况,您应该始终有一个恢复过程。