私は接続に依存するアプリケーションを持っていますそれは多くのアクティビティを持っています。接続がダウンし、実行中のアクティビティに関係なく接続が戻るかユーザーが終了するまで、プログレス・リコネクション・ダイアログを表示する必要があります。アクティビティの上にダイアログを維持する
public void xmppConnectionClosed() {
connectionError = true;
onScreenActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
initiateReconnectionDialog(onScreenActivity); //onScreenActivity is singlton represent the current activity
reconnectionDialog.setMessage(onScreenActivity
.getString(R.string.reconnectionDialogReconnecting));
reconnectionDialog
.setStatus(ReconnectionStatus.RECONNECTING);
// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
reconnectionDialog.show();
}
});
}
そののonCreate
がprotected void onCreate(android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (connectionError) {
initiateReconnectionDialog(this);
reconnectionDialog.show();
}
}
問題は、今私が持っている場合のアクティビティAが活動を開始していること:私はすべての私の活動の親であるBaseActivityで接続失敗イベントをインターセプトし、この方法を作りましたBデバイスを回転させると、アクティビティAのonCreateが呼び出され、ダイアログを表示しようとすると、フォアグラウンドのアクティビティではないという例外がスローされます。 このような状況に対処する方法はありますか?
この音は良いですが、デバイスを回転させたときのダイアログの表示に関する問題 –
方向が変わるとダイアログがすべてのビューを上書きします。あなたのドキュメントをお読みください。 – JoxTraex
バックグラウンドサービスはダイアログを開始しているため、アクティビティを必要とせず、そのアクティビティの方向にも影響しません。 – JoxTraex