我有一个偏好活动,并希望如果单击其中一个项目,它将启动后台工作并在前台显示一个很好的进度条,直到后台任务完成。怎么办???
代码编写:
public boolean onPreferenceClick(Preference preference) {
showProgressDialog();
new Thread(new Runnable() {
public void run() {
doSomething();
hideProgressDialog();
} //Runnable.run()
}).start();
return false;
}
});
但上面的代码没有显示进度对话框。和ANR错误发生。
感谢。
答案 0 :(得分:1)
在您的活动类中添加以下代码:
// Need handler for callbacks to UI Threads
// For background operations
final Handler mHandler = new Handler();
// Create Runnable for posting results
final Runnable mUpdateDone = new Runnable() {
public void run() {
progDialog.hide();
// Do your task here what you want after the background task is finished.
}
};
在onPreferenceClick中编写以下代码:
progDialog = ProgressDialog.show(AddPhoto.this, "", "Uploading Photo...");
new Thread() {
public void run() {
// Start your task here.....
mHandler.post(mUpdateDone);
}
}.start();
如果不适合你,请告诉我!
答案 1 :(得分:1)
我还没有实现进度对话框(计划今天晚些时候),但这个example看起来很好。我打算自己用它。我注意到它会执行许多代码所没有的事情。