AsyncTask在Android 8.1.0上暂停

时间:2018-05-18 12:39:29

标签: android android-asynctask

我正在开发一个Android应用程序,其中应用程序从服务器下载大量文件。代码使用 AsyncTask 在后台线程上执行此下载操作。

Google Pixel Android 8.0设备上测试应用程序时,我发现如果我让设备闲置 20-25分钟,下载操作会暂停。< / p>

我有以下问题:

  1. 代码中是否有任何设置可以让代码继续下载操作?
  2. 这是 Android Oreo 的功能,操作系统暂停应用程序运行电池优化
  3. 我很感激有关此主题的任何建议和想法。谢谢。

1 个答案:

答案 0 :(得分:1)

Android 8.0(API级别26)引入了改善电池续航时间,当您的应用进入cached状态且没有活动components时,系统会释放应用程序所拥有的任何唤醒锁。

有关详细信息,请参阅Background Execution Limits

您可以使用前台服务执行下载操作。

新的startForegroundService()方法启动前台服务。即使应用在后台,系统也允许应用调用Context.startForegroundService()。但是,应用必须在创建服务后在五秒内调用该服务的startForeground()方法,否则系统会停止该服务并声明该应用为ANR