使用android 异步类 为什么不执行 第二次 不执行onPostExecute

 我来答
4443248866c59
推荐于2016-04-26 · 知道合伙人数码行家
4443248866c59
知道合伙人数码行家
采纳数:4064 获赞数:87690
本人热心公益,喜欢帮助他人解决问题。

向TA提问 私信TA
展开全部
如果不是开发人员,直接跳到第三,异步的概念和同步的区别:
一、在Activity中写一个内部类:
private class TestAsyncTask extends AsyncTask<String, Void, Boolean>
{
@Override
protected void onPreExecute()
{
//最先执行的就是这个。
}

@Override
protected Boolean doInBackground(String... params)
{
//这个是在后台执行的东西,就是说,它自动另外开了个线程运行,不影响现在做的东西。
}

@Override
protected void onPostExecute(Boolean result)
{
if (result)
{
//后台执行的完毕后,会用Result通知这里,就是执行这里了。
}
else
{
//所以最好判断一下result,写个else,判断后台执行的东西是不是出问题了。
}
}
}

二,在onCreate的时候启动这个异步,启动代码如下:
new TestAsyncTask().execute("");

三,异步 和 同步的区别
异步的好处,就是把一些东西,特别是耗时间的东西扔到后台去运行了,doInBackground,程序可以继续做事情,防止程序卡在那里失去响应。
同步执行的话,就是程序会呆板地从头执行到尾,耗时间的东西不执行完,程序不会继续往下走,等待时间长的话,有时候就会造成失去响应了。
shendu33001
2013-01-28 · 超过18用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:26.7万
展开全部
你的描述不具体...
追问
我自定义了一个类  继承  AsyncTask 用来处理与后台 数据的交互  第一次请求 可以,我刷新一下  报错,我DeBug  执行完 doInBackground  之后就跳出了  异步类
追答
刷新的时候你重新创建对象看看,你是不是只写了 task.execute("");
MyAsyncTask task=new MyAsyncTask();
task.execute("");
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式