android 开发菜鸟 自己用异步的AsyncTask进行网络下载 ,mMyAsynvTask.execute(mUrl)不执行

自己用android封装的AsyncTask进行网络下载任务,自己封装了一个publicclassMyAsynvTaskextendsAsyncTask<String,I... 自己用android封装的AsyncTask 进行网络下载任务,自己封装了一个public class MyAsynvTask extends AsyncTask<String, Integer,Void>
每点击一次按钮
都会执行下面的方法
@Override
public void start() {
mMyAsynvTask=new MyAsynvTask(mContext, mProgressBar,mTextView);
mMyAsynvTask.execute(mUrl);
}
但有的时候第一次下载可以,第二次点击就不能执行下面的mMyAsynvTask.execute(mUrl);
我知道eccute每次只能执行一次,所以我每次点击按钮后都会重新创建对象,但有的时候第二次下载的时候没反应??debug的时候到mMyAsynvTask=new MyAsynvTask(mContext, mProgressBar,mTextView); 就结束了,有大神知道为嘛这样啊???
展开
 我来答
hawon1
2014-06-23 · TA获得超过186个赞
知道小有建树答主
回答量:94
采纳率:0%
帮助的人:59.5万
展开全部
AsyncTask在不同的SDK版本,执行策略不一样的,
Android executes AsyncTask tasks before Android 1.6 and again as of Android 3.0 in sequence by default.
即:Android从3.0开始,AsyncTask为顺序执行方式。
这就导致AsyncTask没有被执行到,是因为其他的AsyncTask还没执行完。
解决方式:
1、换用Thread+handler或者runonuithread的方式。
2、使用AsyncTask中的
You can tell Android to run it in parallel with the usage of the executeOnExecutor() method, specifyingAsyncTask.THREAD_POOL_EXECUTOR as first parameter.
如:
MyAsynvTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式