ProgressDialog 不显示 [重复]

Posted

技术标签:

【中文标题】ProgressDialog 不显示 [重复]【英文标题】:ProgressDialog doesn't show [duplicate] 【发布时间】: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 以上建议以获取更多详细信息 【参考方案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();
        
    

【讨论】:

以上是关于ProgressDialog 不显示 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

ProgressDialog 已弃用 [重复]

Xamarin.Android:ProgressDialog 不显示

上传图片时 ProgressDialog 不显示

Android:ProgressDialog 不显示

如何在 Android 中进行后台工作时使用 AsyncTask 显示 ProgressDialog? [复制]

如何使用 DialogFragment 显示 AsyncTask 的进度 - 不使用 ProgressDialog