public class Main2Activity extends AppCompatActivity {
private TextView textView_update;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
textView_update = (TextView) findViewById(R.id.textView_update);
}
public void executeTaskClick(View view){
new MyAsyncTask().execute();//执行异步任务
}
//一个异步任务
class MyAsyncTask extends AsyncTask<String,Integer,String>{
//此方法在UI线程中调用,实例化MyAsyncTask执行任务时开始调用,在方法中进行一些准备工作
@Override
protected void onPreExecute() {
super.onPreExecute();
textView_update.setText("开始更新...");
}
//此方法在后台线程中执行,用来执行一个异步任务
@Override
protected String doInBackground(String... params) {
for (int i=0;i<=100;i++){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
publishProgress(i); //发布当前进度值,该方法会触发UI线程回调onProgressUpdate方法
}
return "success";
}
@Override
protected void onProgressUpdate(Integer... values) {
textView_update.setText("当前进度为:"+values[0]+"%");
}
@Override
protected void onPostExecute(String s) {
textView_update.setText(s);
}
}
}