// new MyAsyncTask(MainActivity.this).execute();启动线程(必须在主线程启动)
private static class MyAsyncTask extends AsyncTask<String, Integer, String> {
private MainActivity mainactiity;
public MyAsyncTask(MainActivity mainactivity){
this.mainactiity=mainactivity;
}
// 执行任务之前触发的事件方法,可以在该方法中作一些初始化操作,相当于Handler 处理UI的方式。
protected void onPreExecute() {
super.onPreExecute();
mainactiity.tv1.setText("开始下载.....");
System.out.println("++++++++onPreExecute");
}
// 执行后台的方法,类似于线程,所以不能在该方法中访问Ui组件
protected String doInBackground(String... params) {
for (int i = 0; i < 20; i++) {
System.out.println(i);
publishProgress(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return "success";
}
// 可以使用进度条增加用户体验度。 此方法在主线程执行,用于显示任务执行的进度。/
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
mainactiity.tv1.setText("当前的值为"+values[0]);
}
//当doInBackground方法返回后被调用
protected void onPostExecute(String result) {
super.onPostExecute(result);
mainactiity.tv1.setText(result);
}
}
AsyncTask(异步线程)详解
最新推荐文章于 2022-05-27 19:01:40 发布