android AsyncTask具有活动生命周期

and*_*dev 6 android activity-lifecycle android-asynctask android-activity

我正在使用AsyncTask,以便在我的活动中下载图像

流程是这样的:

protected void onPreExecute() {
        \\begin animation
}

protected IUpiResponse doInBackground(String... params) {
         \\ download the image
}

protected void onPostExecute(IUpiResponse upiResponse) {
         \\stop the animation
}
Run Code Online (Sandbox Code Playgroud)

直到这里一切都很好,问题开始,如果我去asrenctask工作的背景有时我在动画停止得到一个异常nullpointer,因为视图不再有效(我猜),

我可以在停止动画之前检查活动是否在前景但我更愿意避免这种方法,我还能做些什么?

Tom*_*Mor 2

我更喜欢避免这种asyncTask方法并在简单的线程中下载图像,这还将它们保存到持久层(例如文件系统),然后发送Intent

注意:如果后台的活动Intent(如果您按照建议在 onResume 和 onPause 中注册和注销接收器)将不会被接收到,为了避免这种情况,onResume您可以检查是否有更新等待您