在异步任务中使用runOnUiThread()方法来隐藏进度条。
示例代码如下:
public class MainActivity extends AppCompatActivity {
private ProgressBar mProgressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mProgressBar = findViewById(R.id.progressBar);
// 设置点击事件
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 启动异步任务
new MyAsyncTask().execute();
}
});
}
private class MyAsyncTask extends AsyncTask {
@Override
protected void onPreExecute() {
// 显示进度条
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
protected Void doInBackground(Void... voids) {
// 模拟长时间的操作
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
// 隐藏进度条
runOnUiThread(new Runnable() {
@Override
public void run() {
mProgressBar.setVisibility(View.GONE);
}
});
}
}
}
上一篇:保存记录之前弹出消息提示
下一篇:保存集群坐标