2013-06-30 35 views
0

我的應用程序像其他許多人一樣需要不斷的互聯網連接。在我的主要活動中,我有:最好的用戶界面設計,以處理沒有互聯網連接

@Override 
public void onStart() { 
    if (!isOnline()) { 
     Intent disconnected = new Intent(this, Disconnected.class); 
     startActivity(disconnected); 
    } 
    else { 
     ... 
    } 
} 

Disconnected活動顯示帶有消息和重試按鈕的TextView。 現在這個問題是,如果用戶按回來,他立即再次結束在斷開連接的活動,並不能退出應用程序使用後退。 什麼是處理互聯網連接的優雅方式?我的主要活動是一個ListView,我應該只有沒有連接時纔會出現的隱藏視圖? (我不覺得這是正確的方式)。

回答

2

可以有幾種選擇

選項1:

使用AlertDialog顯示斷開。將其設置爲不可取消,並使用兩個按鈕,例如重試和退出。使用開始活動的結果,如果發生了網絡斷開

啓動斷開活動:

選項2。在新的活動中有一個重試按鈕。如果重試設置,則設置OK並結束。如果後退按鈕按下設置取消。現在在onActivityResult的第一個活動中,如果您獲得了RESULT_OK,然後重試連接。

+0

我有點實施選項2,它的工作。因爲當我在重試屏幕中按回時,應用程序沒有更多的事情要做,我希望它關閉。如果我檢測到resultCode CANCEL,如何強制主要活動再次「返回」(實質上是結束應用程序,因爲它是根活動)? – VM4

+1

我試過完成(),它似乎工作。 – VM4

0

如果您的起始活動只是if語句,只有通過調用StartActivity與意味着檢查,如果用戶有互聯網連接,當你進入Disconnected活動

你這樣做,你可以簡單地完成該活動FLAG_ACTIVITY_CLEAR_TOP標誌設置。

@Override 
public void onStart() { 
    if (!isOnline()) { 
     Intent disconnected = new Intent(this, Disconnected.class); 
     disconencted.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(disconnected); 
    } 
    else { 
     ... // Here you would want to do the same thing; 
      // if not, the user could navigate back to this activity as well 
    } 
} 

我無法測試這個,但我認爲它應該工作。

相關問題