我正在后台线程中运行以下操作:
执行这些操作时,我正在显示进度条。但是进度条动画卡住了,但是在线程完成其工作之前它变得没有响应(更新:当后台工作正在运行时,整个UI中似乎没有任何功能)。
这是否会使使用后台线程的实际意图过时?
我应采取什么方法来解决这个问题?
我的代码是:
//Show ProgressBar
Runnable worker = () -> {
//My Operations
runOnUiThread(() -> {
//Hide ProgressBar
});
}
答案 0 :(得分:0)
您可以使用异步方法,它可以正常工作
private class MyAsyncTask extends AsyncTask<String, Progress, Bitmap> {
protected void onPreExecute() {
// Runs on the UI thread before doInBackground
progressBar.setVisibility(ProgressBar.VISIBLE);
}
protected Bitmap doInBackground(String... strings) {
// Some long-running task like downloading an image.
// convert your bitmap
return someBitmap;
}
protected void onProgressUpdate(Progress... values) {
//update progress
}
protected void onPostExecute(Bitmap result) {
//hide progress bar
}}