异步任务 - 需要恢复的方式

时间:2014-04-25 11:27:48

标签: android android-asynctask

我的AsyncTask从URL加载图像缩略图,并在自定义ListView中逐个显示它们。该活动称为ViewThumbsActivity。

如果有很多缩略图,可能需要一分钟才能加载。

我有一些功能,用户可以点击缩略图,然后在新的活动(ViewImageActivity)中打开更大的图像

问题在于:

在ViewThumbsActivity中,我取消onStop中的AsyncTask,因此当用户单击缩略图以查看更大的缩略图时,AsyncTask将被取消,活动中的其余缩略图将停止加载。因此,当他们关闭ViewImageActivity以返回ViewThumbsActivity时,缩略图已停止加载。

您可能会建议我不取消onStop中的AsyncTask吗? 我很想做那件事但是:

用户还可以选择缩略图(在加载之前),然后选择转到ActivityLast。当它们在ActivityLast中时,没有必要继续上一个活动中的AsyncTask来加载缩略图。如果我不停止AsyncTask,ActivityLast运行得非常慢!

但是:用户可以随时点击BACK并选择更多的拇指,所以我想如果他们点击回来我想继续加载缩略图。

我在这里尝试了这个来自github的代码,但它似乎对我没用?

http://mobiarch.wordpress.com/2012/07/20/pausing-and-resuming-background-work-in-android/

1 个答案:

答案 0 :(得分:0)

从ActivityLast启动ViewThumbActivity时,请使用startActivityForResult(Intent, int) 然后在onActivityResult(int, int, Intent)停止AsyncTask。

另请参阅Caching Bitmaps是否可以为您提供帮助。