アクティビティがfinish()メソッドを呼び出すまで、回転する進行状況ダイアログを表示しようとしています。finish()を呼び出す直前にprogressDialog.show()を呼び出します。スピナーは見えますが、回転していません...何か提案はありますか?
他のアクティビティのonActivityResult()で呼び出されるfinish()とものをバックグラウンドスレッドに配置しようとしたので、uiスレッドは何かをする必要はありません。デバッグ中にメインスレッド以外のスレッドでfinish()メソッドを待機すると、進行状況ダイアログが回転します...さらに一歩進んでfinish()メソッドを呼び出すと、進行状況ダイアログの回転が停止し、 1〜2秒後、アクティビティは消えます。
だから私の唯一の提案は、finish()メソッドが進行状況ダイアログを動かさない理由であるということです...それを動かす可能性はありますか?
前もって感謝します!
編集:そのコードは、終了するアクティビティA内にあります。
private void goBack() {
setResult((mReopen) ? Constants.RESULT_REOPEN : RESULT_OK);
if (mReopen) {
mProgressDialog.show();
}
new Thread(new Runnable() {
@Override
public void run() {
finish();
}
}).start();
}
そのコードは、アクティビティAを開始するアクティビティB内にあります。
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent) {
if (requestCode == Constants.REQUEST_CODE_OPEN_EMAG) {
new Thread(new Runnable() {
@Override
public void run() {
switch (resultCode) {
case Constants.RESULT_REOPEN:
mReopen = true;
openEmag(mLastOpenedEmagId, false, false);
break;
default:
mReopen = false;
break;
}
}
}).start();
}
}
ご覧のとおり、すべてのものはuiスレッドとは異なるスレッドで呼び出されます。