Android “活动继续”时“进度”对话框将永久旋转
我正在用Handler调用WebServices,并在的帮助下显示ProgressBarAndroid “活动继续”时“进度”对话框将永久旋转,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
如果下面的方法显示,我已经在顶部调用它停止
@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;
}
}