我的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/
答案 0 :(得分:0)
从ActivityLast启动ViewThumbActivity时,请使用startActivityForResult(Intent, int)
然后在onActivityResult(int, int, Intent)
停止AsyncTask。
另请参阅Caching Bitmaps是否可以为您提供帮助。