Android 8.1.0上的异步任务暂停

Android 8.1.0上的异步任务暂停,android,android-asynctask,Android,Android Asynctask,我正在开发一个Android应用程序,其中应用程序从服务器下载大量文件。代码正在后台线程上使用AsyncTask执行此下载操作 在谷歌Pixel Android 8.0设备上测试应用程序时,我发现如果我让设备闲置约20-25分钟,下载操作会暂停 我有以下问题: 代码中是否有允许代码继续下载操作的设置 这是否是Android Oreo的一项功能,操作系统会暂停应用程序运行,以进行电池优化 如果您对这个话题有任何建议和想法,我将不胜感激。谢谢。安卓8.0(API等级26)引入了一个新的功能,当你的应

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

谷歌Pixel Android 8.0设备上测试应用程序时,我发现如果我让设备闲置约20-25分钟,下载操作会暂停

我有以下问题:

  • 代码中是否有允许代码继续下载操作的设置
  • 这是否是Android Oreo的一项功能,操作系统会暂停应用程序运行,以进行电池优化
  • 如果您对这个话题有任何建议和想法,我将不胜感激。谢谢。

    安卓8.0(API等级26)引入了一个新的功能,当你的应用程序进入无活动状态时,系统会释放应用程序持有的所有唤醒锁,以延长电池寿命

    有关详细信息,请参阅

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


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

    不要使用异步任务,而是前台服务。感谢您的回复。应用程序的代码已有2年历史,因此代码使用AsyncTask。在gradle或manifest文件中是否有可以解决此问题的设置?即使这是一个解决方案,我也很好。请尝试将您的
    compilesdkversion
    targetsdkversion
    在gradle文件中设置为小于26。谢谢您的回复。我已经将compilesdkversion和targetsdkversion设置为23,但buildToolsVersion设置为“27.0.3”。我还需要更改buildToolsVersion吗?