ハンドラーを使用して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);
}
}
これで、アプリがバックグラウンドモードに移行して再開すると、progressdialogが表示され、永久に回転します。戻るボタンをsetCancelable(false)として使用して停止することはできません。
onResume()でstopThread( )を呼び出してみましたが、進行状況が表示されている場合は停止しますが、onCreateでWebサービスを呼び出すと、ProgressDialogが表示され始め、次のインスタンスでonCreate onResumeが呼び出され、ProgressDialogが却下されました。
だから私はこのスピンをバックグラウンドで永遠に止めたいのです。