我正在设计一个应用程序,只需单击按钮即可从sqlite数据库中获取数据。我想在获取期间显示等待消息或进度条,只有当进程长时间超过3秒时才会显示。否则它可以继续该程序。我该怎么做呢 。我尝试使用以下代码显示进度对话框,但它只等待指定的睡眠时间并继续而不显示任何内容.... plss help
protected void GetOrders()
{
ProgressDialog dialog = null;
try
{
dialog=ProgressDialog.show(loginScreen.this,"PLEASE WAIT","LOADING CONTENTS ..",true);
//Accesses database
allOrders=ProductionOrdersBL.GetOrder();
Thread.sleep(4000);
}
catch(Exception e){}
finally
{
dialog.dismiss();
}
}
答案 0 :(得分:1)
首先要显示进度条,你应该使用AsyncTask()(this)。然后用preExecute()
方法说
try{
thread.sleep(3000);
dialog=ProgressDialog.show(loginScreen.this,"PLEASE WAIT","LOADING CONTENTS ..",true);
}catch(){
}
然后在postExecute()中使用
if(dialog.isShowing()){
dialog.dismiss
}
答案 1 :(得分:0)
我找到了解决方案......在调用execute方法之后我有一些操作。因此,当doInBackground()方法在非UI线程中执行时,我的UI线程只是继续执行执行方法调用之后的代码...解决方案是在执行方法调用之后在主UI线程中不执行任务:)