【发布时间】:2017-02-24 07:36:55
【问题描述】:
我正在尝试在我的 Asynctask 中添加一些睡眠时间,因为现在我的 ProgressDialog 在没有太多数据要加载的情况下太快了。
我试过了:
@Override
protected Boolean doInBackground(Void... params) {
try {
progressDialog.setMessage("Loading first thing...");
firstThing();
progressDialog.incrementProgressBy(1);
Thread.sleep(500);
//...repeat above four lines a few times for second, third, fourth thing, etc
return true;
}
catch (Exception e) {
Log.e("MyClassName", "There was an error: " + e);
return false;
}
}
我收到错误“只有创建视图的原始线程才能接触其视图。”
【问题讨论】:
-
您正在更新 Android 主线程之外的 UI 视图。 DoInBackground 在其他线程中运行,因此您无法更新视图。所以,如果你想更新你应该使用的视图,onPreExectute、onPostExecture 或 onProgressUpdate。检查developer.android.com/reference/android/os/AsyncTask.html
-
我也有那些被覆盖的,是的,我只是没有在这里发布这些
标签: android multithreading android-activity android-asynctask sleep