0
A
回答
1
通过应用Rajen Raiyarela的建议下,我做了这个:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_act1);
pb = (ProgressBar) findViewById(R.id.pb);
iv = (ImageView) findViewById(R.id.iv);
TimerTask task = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
swapVisibility();
}
});
}
};
timer = new Timer();
timer.schedule(task, 5000);
new Task().execute();
}
class Task extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
try {
Thread.sleep(7000); // imitating heavy operation
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
timer.cancel();
if (pb.getVisibility() != View.VISIBLE)
swapVisibility();
}
}
private void swapVisibility() {
pb.setVisibility(View.VISIBLE);
iv.setVisibility(View.GONE);
Log.e("TAG", "Visibility changed");
}
+0
我不想睡觉函数doInBackground –
相关问题
- 1. 在进度对话框后显示alertDialog
- 2. 在DialogFragment中显示进度对话框
- 3. 显示OnLocationChanged中的进度对话框
- 4. 在模态对话框顶部显示进度条对话框
- 5. 进度对话框不显示在Android?
- 6. 在webview上显示进度对话框
- 7. 在进度对话框中设置用户背景对话框
- 8. 对话框布局不正确显示
- 9. Android - 闪烁的ImageView进度对话框
- 10. 带对话框的自定义进度条对话框框架
- 11. 显示延迟的进度对话框
- 12. 在显示警告对话框前不显示进度对话框
- 13. 进度对话框代替TextView,ImageView
- 14. ProgressDialog显示里面有进度的白色背景对话框
- 15. 无法显示进度对话框
- 16. Android:显示进度对话框
- 17. 进度对话框没有显示
- 18. 无法显示进度对话框
- 19. 进度对话框不显示
- 20. 进度对话框显示不
- 21. 未显示Android进度对话框
- 22. 进度对话框将不会显示
- 23. 进度对话框显示太晚
- 24. 进度对话框不显示
- 25. 进度对话框持续显示
- 26. Android:进度对话框不显示
- 27. 安卓进度对话框不显示
- 28. 进度对话框不显示
- 29. Android中的选项卡布局中的进度对话框
- 30. 在进度对话框中嵌套提示对话框
您可以定位的ImageView和进度对话框另一层之上并使其可见匆匆按你的条件。关于5秒的情况,你可以发布一个可运行的延迟5秒后执行,使其消失并使进度条可见。 –
好吧,但问题是如果异步任务在5秒之前完成,那么我们关闭onpostexecute()的进度对话框。然后改变进度对话框的可见性会产生错误 –
然后我认为你需要有一个计时器任务延迟5秒后运行。因此,如果异步任务在5秒之前完成,那么您可以取消/清除计时器任务 –