异步操作的几个概念:
1 . 什么是线程阻塞
在android 中,出现线程阻塞
2 什么是异步操作
有两个任务同时来执行,相互不干扰,就是异步
3 AsyncTask 的基本使用方法
-----------------------
新创建的线程就是线程对象,调用线程的start() 方法启动,先看一个示例图
那么,在android 中出现线程阻塞会带来什么困扰?
最常见也是最严重的, 就是弹出 强制关闭 对话框, 要解决这个问题,最常见的就是异步
看一个示例,在这里,如果执行代码:
NetOperator netOperator = new NetOperator();
netOperator.operate();
将影响MainActivity 这个主线程,也就是说 点击网络操作 按钮后,线程等待5s,才能打印字符
如果执行代码:
FirstAsyncTask asyncTask = new FirstAsyncTask();
/**
* 这里要调用execute 方法,才是异步调用,
* 如果调用doInBackground() ,将不是异步,而是同一个线程
*/
fat.execute();
将不会影响主线程MainActivity, 也就是说 点击网络操作 按钮后,可以立即点打印字符串,立即打印结果!
如图:
运行结果
具体代码请参见 mars04_05_async 工程