用AsyncTask实现进度条界面
步骤
在xml中创建控件
在java创建控件对象
绑定id
设置监听
新建一个内部类MyTask继承AsyncTask
在doInBackground方法中执行耗时操作
子线程运行中调用onProgressUpdate方法来更新主线程
耗时操作执行后,调用onPostExecute方法
public class MainActivity extends AppCompatActivity {
private ProgressBar jdtBar;
private Button startBtn;
@Override
protected void onCreate (Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bind();
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View view) {
startBtn.setText("正在下载" );
startBtn.setEnabled(false );
new MyTask().execute();
}
});
}
private void bind () {
jdtBar = findViewById(R.id.jdt_bar);
startBtn = findViewById(R.id.start_bar);
jdtBar.setMax(5 );
}
class MyTask extends AsyncTask<Integer,Integer,String>{
@Override
protected String doInBackground (Integer... integers) {
for (int i = 1 ;i<=5 ;i++){
try {
Thread.sleep(1000 );
publishProgress(i);