2014-05-11 7 views
0

나는 앱을 만들고 있는데, 앱에서 데이터를 지울 때 데이터를 저장해야한다. 현재 사용자가 홈 버튼을 누르면 이벤트가 호출되므로 여기에 데이터를 저장하는 방법을 실행할 수 있습니다.Android - 사용자가 앱을 뒤로 할 때의 이벤트?

그러나 사용자가 휴대 전화의 뒤로 버튼을 통해 앱을 뒤로하면 메서드가 호출되지 않아서 데이터를 저장할 수 없습니다. 후퇴 한 후에 앱을 다시 열면 마지막 세션이 손실됩니다.

TL : DR : 사용자가 앱을 떠날 때 데이터를 저장하려면 어떻게해야합니까? 사용자가 철회 할 때 어떤 이벤트가 호출됩니까?

+1

을 "해야 할 일 "- 네, 그렇습니다. 'onStop()'과'onDestroy()'도'onPause()'후에 호출됩니다. – CommonsWare

답변

0

CommonsWare가 올바르다면 onPause()가 호출되고 있지만 조각에 데이터를로드하는 메서드는 onCreate() 메서드에서만 발생합니다.

취소 한 다음 즉시 다시 들어가면 onCreate()가 호출되지 않습니다.

참조 here.

결론은 데이터를 onResume()으로 옮깁니다. 그것이 어떻게되는지, 행운을 빌어 요!

+0

아니요, 데이터 저장 방법이 onPause() 내에 있습니다. – user3623069

+0

알고 있습니다. 그러나 실제로 데이터를 표시하는 방법은 무엇입니까? (예 : 뷰 채우기) onCreate() 메서드는 뷰를 채우는 것으로 가정합니다.이 뷰를 취소하고 다시 시작할 때 호출되지 않습니다. – Garret

+0

죄송합니다 - 변수를 업데이트하는 또 다른 방법이 있습니다 (onResume()에서 호출 됨) SharedPreferences에서 가져온 변수를 계속 업데이트하는 다른 방법이 있습니다 – user3623069

0

코드를 OnDestroy()에 넣으십시오. 이

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
      // your code here 
} 

또는 다른 방법처럼에게 onPause 방법은 같았다하지 않는 전화기의 뒤로 버튼을 통해 응용 프로그램 중 사용자의 백업이 호출 될 그러나

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
      // your code here 
} 
관련 문제