在我讽刺之前,为了阻止主UI线程,这里是场景:
所以我需要FREEZE UI线程,直到服务完成。没有AsyncTask,因为UI将继续执行并抛出错误。我已设法将“onResume”功能置于睡眠状态,直到服务完成。但在那段时间里,我无法显示任何告诉用户等待的对话框或任何进度条告诉用户坐下来。
如果我尝试
start onResume
if (service is running?)
show progress dialog
while the service is running, thread.sleep
dismiss progress dialog
end onResume
线程睡得很好,醒来很棒。但该死的进度对话框直到onResume才会显示......恢复!最重要的是,在我让主线程进入睡眠状态之前,如何显示指示器(progressdialog或对话框)?
我愿意接受加载其他活动的解决方案,直到服务恢复。我已经尝试过了,但之前的活动继续开心:|
答案 0 :(得分:3)
如果阻止UI线程,则无法显示进度对话框。
我想你想在onResume中调用对话框,但是在onResume和onPaused完成之前,UI不会开始显示对话框。但是当您阻止OnResume中的UI线程时,在阻塞结束之前将无法访问。因此不可能。
完成后,您需要将等待放入异步任务并回调到UI线程。 好的方法是在数据库更新完成后进行一个启动实际活动的加载活动。