2012-01-11 86 views
1

我有一個依賴於連接的應用程序它有很多Activities.I需要顯示一個進展重新連接對話框,每當連接關閉,並保持它直到連接回去或用戶關閉,無論運行的活動。我做了這個方法,截獲連接失敗事件在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(); 
     } 
    } 

現在的問題是,如果我有活動A開始活動B當我旋轉設備時,活動A的onCreate被調用,如果我試圖顯示對話框,它會拋出一個異常,它不是前臺活動。 任何想法如何處理這種情況?

回答

1

這聽起來像一個對話框,必須從後臺服務中調出。這必須是這種情況,因爲你不關心該活動是否正在運行。該活動將不得不啓動服務並在後臺運行。

+0

這聽起來不錯,但旋轉設備時顯示對話框的問題呢? – 2012-01-11 12:53:04

+0

對話框超過了所有視圖,因此在方向更改時不會更改。請閱讀您的文檔。 – JoxTraex 2012-01-11 12:53:51

+1

由於後臺服務正在啓動一個對話框,因此它不需要一個活動,也不會受該活動方向的影響。 – JoxTraex 2012-01-11 12:54:49

0

您可以關閉onRetainNonConfigurationInstance中的對話框。您應該能夠在創建Activity時創建對話框。