2012-01-11 5 views
1

У меня есть приложение, которое зависит от подключения. Оно имеет много действий. Мне нужно отобразить диалог повторного подключения прогресса, когда соединение идет вниз и удерживать его до тех пор, пока соединение не вернется или пользователь не уйдет, независимо от текущей активности. Я сделал этот метод, перехватывать событие сбоя соединения В BaseActivity, который является родителем все моей деятельности:Сохранение диалога над действиями

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

Сейчас вопрос в том, что если у меня есть задание А начать активность B, когда я поворачиваю устройство, вызывается onCreate активности A, и если я попытаюсь показать диалоговое окно, оно выдает исключение, которое не является активностью переднего плана. Любые идеи, как справиться с этой ситуацией?

ответ

1

Это звучит как диалог, который нужно было бы вывести из службы фона. Это должно быть так, потому что вам все равно, работает ли работа. Это действие должно было бы запустить службу и работать в фоновом режиме.

+0

Этот звук хорош, но как насчет проблемы с отображением диалогового окна при повороте устройства. –

+0

Диалог превосходит все виды и как таковой НЕ будет изменен при изменении ориентации. Прочтите свою документацию. – JoxTraex

+1

Поскольку фоновое обслуживание запускает диалог, оно не требует активности и не влияет на ориентацию этого действия. – JoxTraex

0

Вы можете отменить диалог в onRetainNonConfigurationInstance. Затем вы должны иметь возможность воссоздать диалог в вашей деятельности.

Смежные вопросы