1

我正在设计一个应用程序,通过单击按钮从 sqlite 数据库中获取数据。我只想在提取过程中显示等待消息或进度条,前提是该过程很长,例如超过 3 秒。否则它可以继续程序。我该怎么做呢 。我尝试使用以下代码显示进度对话框,但它只等待指定的睡眠时间并继续进行而不显示任何内容....请帮助

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(); 
    }
}
4

2 回答 2

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
}
于 2011-08-09T10:14:34.007 回答
0

我找到了解决方案......我在调用execute方法后进行了一些操作。因此,当 doInBackground() 方法在非 UI 线程中执行时,我的 UI 线程只是继续执行执行方法调用之后的代码......解决方案是在执行方法调用之后在主 UI 线程中不执行任何任务:)

于 2011-09-18T16:39:48.413 回答