protected void showSpinner() {
dialogSpin = ProgressDialog.show(activity, "",
"Loading. Please wait...", true);
Thread t = new Thread(new Runnable(){
@Override
public void run() {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
EverydayNotesAndroid3Activity.importAllCalendar();
}
});
}
});
t.start();
}
我想在线程运行时显示微调器。通过这种方式,我可以显示在导入日历时如何导入日历。
问题:我的Spinner对话框仅在导入完成时显示。我不知道我做错了什么,因为根据我的代码,它应该显示对话框,然后运行导入(需要30秒),但再一次,对话框等待导入结束显示。
感谢您的关注,请求更多信息。
答案 0 :(得分:2)
考虑调查Asynctasks。
答案 1 :(得分:1)
您正在自己的UI线程中导入日历。然后你的进度对话框等待,直到导入完成。然后它将再次显示。
如果要显示进度对话框,请在不在UI线程中的另一个线程中导入日历。
答案 2 :(得分:1)
我会使用AsyncTask导入日历。 AsyncTask有三种可以覆盖的方法。你覆盖doInBackground并完成在后台线程中完成的所有工作。每次在UI中更改某些内容时,您都可以从后台任务调用publishProgress。然后,AsyncTask将在UI-Thread中调用onProgressUpdate,以允许您向用户显示进度。