Android 使用ProgressBar.setProgress(int)时出现问题
08-18 11:24:09.503:错误/AndroidRuntime(22649):原因:android.view.ViewRoot$CalledFromErrorThreadException:只有创建视图层次结构的原始线程才能接触其视图 有什么解决办法吗/ 是的。 您不能在非UI线程中触摸UI,因此解决方案是在Android 使用ProgressBar.setProgress(int)时出现问题,android,progress-bar,Android,Progress Bar,08-18 11:24:09.503:错误/AndroidRuntime(22649):原因:android.view.ViewRoot$CalledFromErrorThreadException:只有创建视图层次结构的原始线程才能接触其视图 有什么解决办法吗/ 是的。 您不能在非UI线程中触摸UI,因此解决方案是在runOnUiThread中运行有问题的代码: runOnUiThread(new Runnable() { public void run() { //y
runOnUiThread
中运行有问题的代码:
runOnUiThread(new Runnable() {
public void run() {
//your problematic code
}
});
对。
您不能在非UI线程中触摸UI,因此解决方案是在runOnUiThread
中运行有问题的代码:
runOnUiThread(new Runnable() {
public void run() {
//your problematic code
}
});
只有UI线程可以处理视图和内容。如果您正在另一个线程中工作,请尝试使用
Handler
将更改发布到UI线程,或切换到使用AsyncTask
因此,您已经在使用
AsyncTask
,因此您应该ProgressBar.setProgress()
在AsyncTask
的onProgressUpdate()中。重写此方法只有UI线程可以处理视图和内容。如果您正在另一个线程中工作,请尝试使用Handler
将更改发布到UI线程,或切换到使用AsyncTask
因此,您已经在使用AsyncTask
,因此您应该ProgressBar.setProgress()
在AsyncTask
的onProgressUpdate()中。重写此方法我可以让类doSync extends AsyncTask实现runOnUiThread吗?需要什么?您可以在doInBackground()中运行此方法。我可以让类doSync extends AsyncTask实现runOnUiThread吗?需要什么?您可以在doInBackground()中运行此方法