我一直在下载图片并将其保存到异步任务中的sdcard如果应用程序变为后台并且被杀死下载将是不完整的,所以取消onstop中的异步任务并删除下载的图像以便不会有任何不完整images.问题发生在我按下主页按钮并恢复后,我已经在这里重新启动取消的异步任务。任何人都可以帮我解决这个问题
答案 0 :(得分:0)
不要使用onStop()。在onPause()中暂停任务,在onResume()中恢复它。
答案 1 :(得分:0)
cancel()
类的AsyncTask
方法将设置取消标记。您可以使用AsyncTask
方法在isCancelled()
中查看,以确定在这种情况下该怎么做。
在onStop()
中,您可以cancel()
。取消发生时,您可以保存任何处理对某些持久存储的处理。然后,重新执行AsyncTask
或onRestart()
中的onResume()
。不用说,您的编码逻辑必须适应所有这些。
为什么不在SQLite中保存图像的URL并标记下载的图像,而不是删除下载的图像?任务重新启动时,只下载尚未下载的任务。这样可以节省带宽。
至于主页按钮,您不能覆盖它的行为。相反,请使用onUserLeaveHint()
方法:
当活动即将到来时,被称为活动生命周期的一部分 作为用户选择的结果进入后台。例如,何时 用户按下Home键,将调用onUserLeaveHint()