Android开发--AsyncTask异步任务(一)
所谓异步任务即异步执行,把一个耗时的任务放入另一个线程中去执行,由AsyncTask类管理。
下面给出一个测试程序,测试异步任务的执行,如果不使用异步执行会怎么样,利用异步机制又会怎么样。
本实例包含三个类:
1.模拟一个耗时任务的类,该类使得线程休眠5000毫秒,代码如下:
public class MainActivity extends Activity {private Button button;;private Button button2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button=(Button)findViewById(R.id.button1);button2=(Button)findViewById(R.id.button2);button.setOnClickListener(new MyButton());button2.setOnClickListener(new MyButton());}private class MyButton implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.button1:net();break;case R.id.button2:log();break;default:break;}}}public void net(){/* * 如果用一下注释的代码,则这两个操作都是在一个线程里运行,即主线程, * 当利用下面的代码时,用的是一个异步线程,互相不干扰 *///NetOperate netOperate=new NetOperate();//netOperate.operator();FirstAsyncTask firstAsyncTask=new FirstAsyncTask();firstAsyncTask.execute();}public void log(){Log.d("BruceZhang", "你好!!");}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}