我正在开发一个Android应用程序,其中应用程序从服务器下载大量文件。代码使用 AsyncTask 在后台线程上执行此下载操作。
在 Google Pixel Android 8.0设备上测试应用程序时,我发现如果我让设备闲置 20-25分钟,下载操作会暂停。< / p>
我有以下问题:
我很感激有关此主题的任何建议和想法。谢谢。
答案 0 :(得分:1)
Android 8.0(API级别26)引入了改善电池续航时间,当您的应用进入cached状态且没有活动components时,系统会释放应用程序所拥有的任何唤醒锁。
有关详细信息,请参阅Background Execution Limits。
您可以使用前台服务执行下载操作。
新的startForegroundService()方法启动前台服务。即使应用在后台,系统也允许应用调用Context.startForegroundService()
。但是,应用必须在创建服务后在五秒内调用该服务的startForeground()
方法,否则系统会停止该服务并声明该应用为ANR