在运行Thread.sleep(1000)循环之前打开Android Dialog

时间:2014-09-28 16:57:15

标签: android multithreading dialog

我正在尝试打开dialog框,然后在dosubmit()中运行一个方法,其中Thread.sleep(1000)循环正在检查RunnableFuture的结果。

似乎压倒setOnShowListener无效。

    private void dosubmitdialog(){
        mDialogloading = new ProgressDialog(mActivity);
        mDialogloading.setCanceledOnTouchOutside(false);
        mDialogloading.setCancelable(false);
        mDialogloading.setMessage("Uploading data ...");
        mDialogloading.setOnShowListener(new DialogInterface.OnShowListener() {
            @Override
            public void onShow(DialogInterface dialog) {
                dosubmit();
            }
        });
        mDialogloading.show();
    }

我可以使用其他什么方法?

1 个答案:

答案 0 :(得分:2)

而不是使用Thread.sleep(1000)使用Handler.postDelayed()在1000之后调用dosubmit();

 public void onShow(DialogInterface dialog) {
    Handler handler=new Handler();
    handler.postDelayed(new Runnable() {
       @Override
       public void run() {
            handler.removeCallbacksAndMessages(null);
            dosubmit();
        }
    }, 1000);
   }