在Android中什么是异步执行;

今天在项目中约到一个问题。什么是异步。在网上百度一下,这个解答不错,分享给大家。

地址:http://zhidao.baidu.com/question/381617804.html

我来给你讲解一下异步的使用吧,
如果你不是开发人员,直接跳到第三,异步的概念 和 同步的区别:
一、在你的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,程序可以继续做自己的事情,防止程序卡在那里失去响应。
同步执行的话,就是程序会呆板地从头执行到尾,耗时间的东西不执行完,程序不会继续往下走,等待时间长的话,有时候就会造成失去响应了。

我就是搞开发的,呵呵。我的代码你直接贴进去就能用的。打字贴代码辛苦啊~~望采纳。也欢迎追问

追问

我也是搞开发的,我也弄了你这个Android异步的例子
protected void onPostExectute(String result) {
			// doInBackground返回进触发,抵免话说,就是doInBackground执行完后触发
			// 这里的result就是上面doInBackground执行后的返回 值,所以这时是"执行完毕"
			MainActivity.this.setTitle(result);
			
			System.out.println(result);
			
			
			super.onPostExecute(result);

		}

回答

哈哈,咱们都是搞开发的代码工。算是有缘哈!
恩,你说得对,
onPostExecute(Boolean result)里的参数result,就是doInBackground的返回值。就是用它去触发onPostExecute的。
这个参数是个布尔型,不是String型啊。你的追问里,把参数写成String了。

一、你先随便让doInBackground返回一个值(Boolean ):
 @Override
  protected Boolean doInBackground(String... params)
  {
    return true; //或者你让它return false;
 }

二、然后你这样打印出来看
 @Override
  protected void onPostExecute(Boolean result)
  {
    super.onPostExecute(result);
    MainActivity.this.setTitle("result is: " + result);
    System.out.println("result is: " + result);
  }

这样你就一目了然啦。调试成功了吗?
posted @ 2012-06-06 09:41  pengqinping  阅读(539)  评论(0编辑  收藏  举报