3

경보 응용 프로그램을 구축 중입니다. 나는 현재 ListActivity를 가지고있다. ListActivity는 알람 목록과 특정 알람 시간을 변경하는 다른 활동을 표시한다. 내 문제는 알람 시간을 변경하기 위해 활동을 시작한 다음 뒤로 버튼을 누르면 활동이 새로 고쳐지지 않는다는 것입니다. 그러나 ListActivity로 다시 리디렉션하는 버튼을 구현했습니다.이 버튼을 누르면 알람 목록이 새로 고쳐집니다. 뒤로 버튼을 누른 후 어떻게 알람 목록을 새로 고칠 수 있습니까? 알람 목록 활동에서뒤로 버튼을 누른 후 이전 활동을 새로 고치는 방법은 무엇입니까?

+0

onRestart()가 더 좋습니다! onResume()은 프로 시저를 두 번 수행하고 back 버튼을 누르면 onRestart()가 호출되며 프로 시저는 한 번만 수행됩니다. –

답변

8

onResume()을 재정 의하여 알람 목록이 새로 고쳐 졌는지 확인하여 ListActivity를 방문 할 때마다 업데이트되도록해야합니다.

7

사용

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

당신은 먼저 호출 두 번이 활동 때 활동을 다시 시작 N 2 시작할 때 onResume이 일을합니다.

+2

이 답변은 맞습니다 !!! OnRestart()는 이것보다 OnResume()보다 잘 작동합니다! –

+2

onResume()을 사용하여 테스트했으며 Activity가 만들어지면 함수를 호출합니다 (필요하지 않습니다). 하지만 onRestart()를 사용하면 뒤로 버튼에 의해 호출 된 Activity의 경우에만 호출됩니다 (그리고 우리가 원하는 것입니다). 따라서 onRestart()를 사용하는 것이 훨씬 더 좋습니다! –

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

저는 항상 back이 listview 일 때 이것을 사용합니다.

관련 문제