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); 就结束了,有大神知道为嘛这样啊??? 展开
每点击一次按钮
都会执行下面的方法
@Override
public void start() {
mMyAsynvTask=new MyAsynvTask(mContext, mProgressBar,mTextView);
mMyAsynvTask.execute(mUrl);
}
但有的时候第一次下载可以,第二次点击就不能执行下面的mMyAsynvTask.execute(mUrl);
我知道eccute每次只能执行一次,所以我每次点击按钮后都会重新创建对象,但有的时候第二次下载的时候没反应??debug的时候到mMyAsynvTask=new MyAsynvTask(mContext, mProgressBar,mTextView); 就结束了,有大神知道为嘛这样啊??? 展开
展开全部
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);
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);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询