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

我总是使用这个时,当是列表视图。