내 응용 프로그램에서 조각 상태를 저장하려면 SharedPreferences
을 사용하고 있습니다. 하지만 사용자가 응용 프로그램 외부로 들어가면 SharedPreferences
안에있는 항목을 삭제하고 싶습니다. 내 메인 클래스에서사용자가 응용 프로그램을 닫을 때 값 삭제
: SM은 내가 만든 헬퍼 클래스의 인스턴스
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if(isFinishing() == true)
{
SM.removePreferences();
}
}
나는 다음 시도했다. removerPreferences가 수행하는 작업은 다음과 같습니다.
public void removePreferences(){
editor.clear();
editor.commit();
}
그러나이 작업은 실행되지 않았습니다. 로그를 통해 앱이 isFinishing() if 문 안에 들어가는 것을 알았지 만 메소드가 실행되지 않습니다. 나는 또한 onDestroy()
을 시도했지만 메서드가 호출되지 않았습니다.
누군가 나를 도울 수 있습니까? 재정의 중지시
'앱이 isFinishing() if 문 내부에 있지만 메소드가 구현되지 않습니다. ' 코드가'if' 블록으로 들어가면 그 메소드가 실행되어야합니다 (MUST). 그것이 당신이 아니라고 말하는 이유는 무엇입니까? BTW, logcat은 이와 같은 문제를 해결하는 좋은 방법이 아닙니다. 대신 디버거를 사용해야합니다. 그것이 바로 그 때문입니다. 또한 공유 환경 설정은 앱을 종료 할 때 삭제할 상태를 저장하는 좋은 방법이 아닙니다. – Simon
당신은 어떻게 저의 저축 상태 일을 제안하겠습니까? 왜냐하면 그것은 나의 최후의 수단 이었기 때문입니다. @ Simon –
"이 저축 상태를 어떻게 할 것이라고 제안합니까?" "주"는 왜 당신이 "저장"하고 있는지, 또는 대답 할 수없는 이유입니다. 그러나 Simon에 동의합니다. 파일에 넣고 싶지 않은 파일에 파일을 넣지 마십시오. – CommonsWare