Android “活动继续”时“进度”对话框将永久旋转

Android “活动继续”时“进度”对话框将永久旋转,android,android-activity,android-dialog,android-lifecycle,android-progressbar,Android,Android Activity,Android Dialog,Android Lifecycle,Android Progressbar,我正在用Handler调用WebServices,并在的帮助下显示ProgressBar 如果下面的方法显示,我已经在顶部调用它停止 @Override public void onStop() { if (dataLoadProgress != null && dataLoadProgress.isShowing()) stopThread(); super.on

我正在用Handler调用WebServices,并在的帮助下显示ProgressBar



如果下面的方法显示,我已经在顶部调用它停止

        @Override
        public void onStop() {
            if (dataLoadProgress != null && dataLoadProgress.isShowing())
                stopThread();
            super.onStop();
        }

        private synchronized void stopThread() {
        try {
            if (getServerData != null) {
                if (dataLoadProgress != null && dataLoadProgress.isShowing())
                    dismissDialog(mDialogProgress);
                getServerData = null;
                // // mHandler = null;
            }
        } catch (Exception e) {
            CommonFunctions.DoCatchOperation(e);
        }
        }
现在,当我的应用程序转到后台模式并恢复时,它会显示progressdialog,它会永远旋转,我无法使用back按钮停止它,因为它的设置可取消(false)

我曾尝试在onResume()中调用我的stopThread(),如果进度显示,那么它将停止,但我在onCreate中调用webservice,它将开始显示ProgressDialog,在下一个实例中,onCreate onResume调用后,我的ProgressDialog将被取消


所以我想在后台永远停止旋转。

我在这里只添加了一行条件。
如果(dataLoadProgress==null)它对我有效

// Create Progress dialogs
@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case mDialogProgress:
        if(dataLoadProgress == null)
            dataLoadProgress = new ProgressDialog(this);
        dataLoadProgress.setMessage("Loading...");
        dataLoadProgress.setIndeterminate(true);
        dataLoadProgress.setCancelable(false);
        dataLoadProgress
                .setProgressStyle(android.R.attr.progressBarStyleSmallTitle);
        return dataLoadProgress;
    default:
        return null;
    }
}

哦,我的上帝。您已经创建并实现了这个线程机制。为什么?您可以改为尝试异步任务。您是这样显示对话框的吗?@PareshMayani我现在有32个活动,我正在编写实现的代码。。所以,如果可能的话,首先尝试用现有代码修复..32个活动,然后呢?您不能定义超级异步任务类并在所有这32个活动中扩展它吗。?您只需在super base任务中编写对话显示。@PareshMayani好的。。那很好。。但是你知道为什么会恢复对话吗?因为它在暂停/暂停之前已经被取消,甚至不再显示。
// Create Progress dialogs
@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case mDialogProgress:
        if(dataLoadProgress == null)
            dataLoadProgress = new ProgressDialog(this);
        dataLoadProgress.setMessage("Loading...");
        dataLoadProgress.setIndeterminate(true);
        dataLoadProgress.setCancelable(false);
        dataLoadProgress
                .setProgressStyle(android.R.attr.progressBarStyleSmallTitle);
        return dataLoadProgress;
    default:
        return null;
    }
}