作业3 线程控制
安卓中的线程控制是非常重要的内容,请使用AsyncTask设计一个异步任务;
本次作业用AsyncTask实现后台下载控制,并显示实时下载进度。主要代码如下:
1、MainActivity
public class MainActivity extends AppCompatActivity {
Button button;
ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
progressBar = findViewById(R.id.progressBar);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new MyAsyncTask().execute();
}
});
}
}
2、异步AsyncTask控制
class MyAsyncTask extends AsyncTask<String,Integer,String> {
@Override
protected void onPreExecute() {
progressBar.setVisibility(View.VISIBLE);
super.onPreExecute();
}
@Override
protected String doInBackground(String... strings) {
int step = 1;
try {
while (step <= 100) {
publishProgress(step++);
Thread.sleep(50);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
return "下载完成!";
}
@Override
protected void onProgressUpdate(Integer... values) {
progressBar.setProgress(values[0]);
super.onProgressUpdate(values);
button.setText("后台下载任务进行中...");
}
@Override
protected void onPostExecute(String s) {
progressBar.setVisibility(View.GONE);
button.setText(s);
super.onPostExecute(s);
}
}
3、运行效果
(1)未开始下载

(2)下载进行中

(3)下载完成

版权声明:本文为m0_47114547原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。