我试图在显示滑动抽屉时显示进度对话框。
这是打开抽屉事件处理程序:
public void onDrawerOpened(View drawerView) {
progress = ProgressDialog.show(activity, "dialog title",
"dialog message", true);
openDrawer();
}
在openDrawer()
内我调用一个函数fillCommunityList()
,我需要在执行时显示进度对话框
fillCommunityList()
实施如下:
private void fillCommunityList(){
new Thread(new Runnable() {
@Override
public void run() {
try {
// Here you should write your time consuming task...
UIManager manager = new UIManager(activity);
coms = manager.getCommunities();
progress.dismiss();
getOutTread = false;
} catch (Exception e) {
}
getOutTread = false;
}
}).start();
// to stop code till thread be finished
while(getOutTread){ }
SlidingMenuExpandableListAdapter adapter = new SlidingMenuExpandableListAdapter(this,
navDrawerItems, coms, mDrawerList);
mDrawerList.setAdapter(adapter);
}
注意: 我把一个线程只是为了让进度对话框工作
我的问题有以下两点:
1-进度对话框突然出现太晚,然后消失
2-线程在执行过程中花费了大量时间(没有线程fillCommunityList()
大约需要10秒,但是使用线程花费的时间超过一分钟)
注意:manager.getCommunities()
在其实现中具有asyncTask
答案 0 :(得分:1)