你的位置:首页 > 软件开发 > 操作系统 > AsyncTask.cancel()的结束问题

AsyncTask.cancel()的结束问题

发布时间:2016-02-29 14:00:15
实际项目中有这么一个问题,用户进入详情界面,那么我们就要网络加载数据并展现在UI上,这个加载用线程或者异步。这里就拿项目中统一用异步任务来获取网络数据把。用户可能会有这么一个操作,它在一个商品(说说等)列表中,点击一个列表项,进入到相应的详情界面,这时候,我们会开启一个异步任务来 ...

实际项目中有这么一个问题,用户进入详情界面,那么我们就要网络加载数据并展现在UI上,这个加载用线程或者异步。

这里就拿项目中统一用异步任务来获取网络数据把。

用户可能会有这么一个操作,它在一个商品(说说等)列表中,点击一个列表项,进入到相应的详情界面,这时候,我们会开启一个异步任务来获取网络数据,但是网络差的情况下, 用户可能就不愿意等了,立马按后退按钮回到列表,点击下一个别的列表项进入详情界面,发现加载太慢,又按后退键,如此反复,那么就导致此时有多个异步任务在执行,或者出现OOM问题,或者出现异步任务等待问题。

那么,作为开发者,我们对应的解决方案,便是在用户在详情界面按退出按钮退回到上一个界面的时候,把没有执行完的异步任务给结束掉。

------------------------------------------------------------------------------------------------------------------------------

现在我们发现了这个问题,又有了解决方案。那么就用代码来实现了。

那么 取消异步任务怎么做?

我一开始这样做,AsyncTask.cancel(true);

看下参数的定义:

@param mayInterruptIfRunning <tt>true</tt> if the thread executing this   *    task should be interrupted; otherwise, in-progress tasks are allowed   *    to complete.

原标题:AsyncTask.cancel()的结束问题

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录