【问题标题】:ProgressDialog doesn't show [duplicate]ProgressDialog 不显示 [重复]
【发布时间】:2020-01-26 12:54:48
【问题描述】:

我希望在我的活动获取一些数据时出现一个进度对话框。我使用了异步任务,但它没有显示 我已经尝试了之前 Stack Overflow 问题的所有答案,但它们似乎都不适合我

private class BackgroundSync extends AsyncTask<Void,Void,Void> {
    ProgressDialog progress = new ProgressDialog(MainActivity.this);

    @Override
    protected void onPreExecute() {
        progress.setMessage("Loading");
        progress.setTitle("Loading");
        progress.show();
        super.onPreExecute();



    }

    @Override
    protected Void doInBackground(Void... voids) {
        /get data

        return null;
    }

    @Override
    protected void onPostExecute(Void aVoid) {

        progress.dismiss();
        super.onPostExecute();

    }
}

我也试过这个 progress = ProgressDialog.show(MainActivity.this,"Loading","Loading"); 正如一个堆栈溢出答案所建议的那样,但它仍然没有显示

我也使用了下面的代码,但是这次ProgressDialog 没有消失

private class BackgroundSync extends AsyncTask<Void,Void,Void> {
    ProgressDialog progress

    @Override
    protected void onPreExecute() {
        progress = new ProgressDialog(MainActivity.this);
        progress.show(MainActivity.this,"Loading","Loading");
        super.onPreExecute();

    }

    @Override
    protected Void doInBackground(Void... voids) {
        SyncEvents();

        return null;
    }

    @Override
    protected void onPostExecute(Void aVoid) {

        progress.dismiss();

    }
}`

我该怎么办?这个ProgressDialog 问题已经花费了 2 个多小时来解决

【问题讨论】:

  • 问题出在您的 MainActivity.this.check 以上建议以获取更多详细信息

标签: android android-asynctask progressdialog


【解决方案1】:

使用此代码

private class BackgroundSync extends AsyncTask<Void, Void, Void> {
    private ProgressDialog dialog;

    public BackgroundSync(MyMainActivity activity) {
        dialog = new ProgressDialog(activity);
    }

    @Override
    protected void onPreExecute() {
        dialog.setMessage("Loading");
        dialog.setTitle("Loading");
        dialog.show();
    }
    @Override
    protected Void doInBackground(Void... args) {
        // do background work here
        return null;
    }
    @Override
    protected void onPostExecute(Void result) {
         // do UI work here
        if (dialog.isShowing()) {
            dialog.dismiss();
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多