我需要在UI线程上完成一些工作,但这意味着我不能(我知道)在UI忙于执行其他任务时显示ProgressBar
。
我知道这听起来有点不合逻辑,但是当UI线程忙时,有没有办法在UI线程上显示不确定的ProgressBar
?
我知道使用Runnables和AsyncTasks,如果可以的话,我会用它们来完成实际工作,但是这些可以用来显示ProgressBar
本身吗?
答案 0 :(得分:3)
只需在其中显示带有正在加载... 的文本视图,或其他一些静态视图(带有进度的图像视图,不会旋转)。任何其他解决方案都需要在UI上完成工作。
我真的会检查我的代码以释放UI,因为如果你使用UI的时间过长,用户就无法按回或任何东西,他会觉得应用程序被卡住了。
答案 1 :(得分:2)
简短的回答是否定的。
如果您的UI线程因工作繁重而阻塞,则UI不会更新。
但我相信你可以改进你的代码,这样它就不会阻止UI线程。
答案 2 :(得分:0)
是的,你可以在AsyncTask的帮助下在UI线程上显示一个不确定的ProgressBar。
onPreExecute() {
// Display Progressbar here
}
doInBackground() {
// Do some heavy task here, but not related to UI thread
}
onPostExecute() {
// Dismiss the Progressbar
}