0
アクティビティがlaunchMode="SingleTask"
の場合、ProgressDialogで2回目の表示に問題があります。アクティビティがlaunchMode = "SingleTask"の場合、Progress Dialogが2回表示されません
私はアクティビティをSingleTaskとして持つ必要があります。はじめてボタンをクリックするとダイアログが表示されますが、アクティビティを閉じてもう一度やり直すとボタンをクリックするとProgressDialog
は再び表示されません。
マイコード:
private class FakeTask extends AsyncTask<Integer, Void, Void>{
private FakeCallBackListener mListener;
FakeTask(FakeCallBackListener listener){
mListener = listener;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = new ProgressDialog(mContext);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setMessage(mContext.getString(R.string.processing_data));
mProgressDialog.setCancelable(false);
mProgressDialog.setInverseBackgroundForced(true);
if (!((Activity)mContext).isFinishing()){
mProgressDialog.show();
}
}
@Override
protected Void doInBackground(Integer... params) {
try {
Thread.sleep(params[0]);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
mProgressDialog.dismiss();
}
}
と、ボタンがクリックされたときに、私はちょうどこの呼び出し:私が持っている特定のActivity
にマニフェストに
new FakeTask(listener).execute(delay);
を:
android:launchMode="singleTask"
任意の提案?私は、アクティビティが実際には破壊されていないので、コンテキストが死んだダイアログに渡っていることを知っています。しかし、どのように私は毎回表示するダイアログを修正するのですか?