gpt4 book ai didi

android - 进度对话框在 Activity 恢复时永远旋转

转载 作者:行者123 更新时间:2023-11-29 22:04:46 24 4
gpt4 key购买 nike

我正在使用 Handler 调用 WebServices 并在

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

如果它显示,我已经调用了下面的方法 onStop 来停止。

        @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);
}
}

现在,当我的应用程序进入后台模式并恢复时,它会显示进度对话框并永远旋转,我无法使用后退按钮将其停止,因为它的 setCancelable(false);

我尝试在 onResume() 中调用我的 stopThread() 如果显示进度,它就会停止,但我在 onCreate 中调用 webservice 并且它开始显示 ProgressDialog 并在 onCreate onResume 调用后的下一个实例中显示我的 ProgressDialog 被关闭。

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

最佳答案

我在这里只添加了一行条件。
if(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;
}
}

关于android - 进度对话框在 Activity 恢复时永远旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10992598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com