package com.pingyijinren.test;
import android.os.AsyncTask;
import android.widget.ProgressBar;
import android.widget.TextView;
/**
* Created by Administrator on 2016/5/18 0018.
*/
class MyAsyncTask extends AsyncTask<Integer,Integer,String>
{
private TextView txttitle;
private ProgressBar pgbar;
public MyAsyncTask(TextView txttitle,ProgressBar pgbar)
{
super();
this.txttitle=txttitle;
this.pgbar=pgbar;
}
//该方法不运行在UI线程中,主要用于异步操作,通过调用publishProgress()方法
//触发onProgressUpdate对UI进行操作
@Override
protected String doInBackground(Integer... params) {
int i = 0;
for (i = 10;i <= 100;i+=10)
{
try {
Thread.sleep(1000);
}catch (InterruptedException e){
e.printStackTrace();
}
publishProgress(i);
}
return i + params[0].intValue() + "";
}
//该方法运行在UI线程中,可对UI控件进行设置
@Override
protected void onPreExecute() {
txttitle.setText("开始执行异步线程~");
}
//在doBackground方法中,每次调用publishProgress方法都会触发该方法
//运行在UI线程中,可对UI控件进行操作
@Override
protected void onProgressUpdate(Integer... values) {
int value = values[0];
pgbar.setProgress(value);
}
}
package com.pingyijinren.test;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity{
private TextView txttitle;
private ProgressBar pgbar;
private Button btnupdate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txttitle=(TextView)findViewById(R.id.txttitle);
pgbar=(ProgressBar)findViewById(R.id.pgbar);
btnupdate=(Button)findViewById(R.id.btnupdate);
btnupdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyAsyncTask myAsyncTask=new MyAsyncTask(txttitle,pgbar);
myAsyncTask.execute(1000);
}
});
}
}