3

我正在構建一個報警應用程序。我目前有一個ListActivity,它顯示報警列表和另一個改變特定報警時間的活動。我的問題是,當我決定進入活動來更改鬧鐘時間,然後按下後退按鈕時,它不會刷新。但是,我已經實現了一個重定向回ListActivity的按鈕,如果按下它,警報列表將刷新。如何在按下後退按鈕後刷新警報列表?如何在按下後退按鈕後刷新先前的活動?

+0

onRestart()更適合這個! onResume()執行兩次程序,並且當您按下後退按鈕時調用onRestart(),並且該過程只完成一次。 – 2014-01-12 08:46:13

回答

8

您應該重寫您的onResume()以檢查警報列表是否已刷新,以便每當您返回/返回到您的ListActivity時,它都會得到更新。

7

在您的報警列表活動

使用

public void onRestart() { 
    // reload your list items if changed and adapter.notifydatastatechange(); 
} 

如果你的onResume做的話它的呼叫兩次第一,當你開始活動時,您的活動重啓ñ第2位。

+2

這個答案是正確的! OnRestart()比OnResume()更適合這個! – 2014-01-12 08:36:35

+2

我使用onResume()進行了測試,並且在創建Activity時調用函數(並且不是必需的)。但是使用onRestart()它僅在由後退按鈕調用的Activity中調用(這是我們想要的)。因此,使用onRestart()對此更好! – 2014-01-12 08:40:21

2

這裏是代碼。

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      Intent a = new Intent(this,yourback.class); 
      a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(a); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

我總是使用這個時,當是列表視圖。