温馨提示×

android progressdialog能否多次调用

小樊
81
2024-11-23 04:08:09
栏目: 编程语言

是的,Android的ProgressDialog可以多次调用。但是,需要注意的是,每次调用ProgressDialog时,都需要确保已经取消了之前的ProgressDialog实例,否则可能会导致多个ProgressDialog同时显示在屏幕上。

以下是一个简单的示例,展示了如何在Android中多次调用ProgressDialog:

public class MainActivity extends AppCompatActivity {

    private ProgressDialog progressDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 第一次调用ProgressDialog
        showProgressDialog();

        // 模拟异步任务
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                // 取消之前的ProgressDialog实例
                if (progressDialog != null && progressDialog.isShowing()) {
                    progressDialog.dismiss();
                }

                // 第二次调用ProgressDialog
                showProgressDialog();

                // 再次模拟异步任务
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        // 取消之前的ProgressDialog实例
                        if (progressDialog != null && progressDialog.isShowing()) {
                            progressDialog.dismiss();
                        }
                    }
                }, 2000);
            }
        }, 2000);
    }

    private void showProgressDialog() {
        if (progressDialog == null) {
            progressDialog = new ProgressDialog(this);
            progressDialog.setMessage("Loading...");
            progressDialog.setCancelable(false);
        }
        progressDialog.show();
    }
}

在这个示例中,我们首先在onCreate方法中调用了showProgressDialog方法来显示第一个ProgressDialog。然后,我们使用Handler模拟了一个异步任务,在异步任务执行完成后,我们取消了之前的ProgressDialog实例,并再次调用了showProgressDialog方法来显示第二个ProgressDialog。最后,我们再次模拟了一个异步任务,在异步任务执行完成后,我们取消了之前的ProgressDialog实例。

0