2012-09-07 4 views
0

활동 라이프 사이클 콜백을 쌍으로 구현해야합니까?Android 활동주기 콜백

  • onCreate을 재정의하는 경우 onDestroy도 무시해야합니까? 당신이 onStart를 오버라이드 (override)하는 경우
  • 당신은 또한 onStop를 오버라이드 (override) 할 필요가? 당신이 onResume를 오버라이드 (override)하는 경우
  • 당신은 또한 onPause를 오버라이드 (override) 할 필요가?

onCreate을 구현했지만 onDestroy을 구현하지 않으면 앱이 다운됩니다.

쌍으로 구현하는 것이 바로 좋은 방법인가, 아니면 전혀 중요하지 않습니다 (당신이 필요로 구현)?

+1

왜 시도하고 말하지 않습니까? –

+1

글쎄, 내 응용 프로그램은 onStart 및 onResume 구현에 충돌이 있습니다. 그 중 하나가 log.D가있을 때만 호출됩니다. 따라서 나는 그것을 이해할 수 없습니다. 위의 질문이있는 빨대에서 – bph

+1

'super.onStart()'와'super.onResume() '을 호출 했습니까? 아래에서 내 수정 답변을 참조하십시오. – kcoppock

답변

4

필요한 것을 구현하십시오. 다른 클래스는 자동으로 수퍼 클래스 (Activity)에서 호출됩니다. 수명주기의 해당 시점에 기능을 추가해야하는 경우에만 재정의해야합니다. 일반적으로 onPause()에서 처리 할 경우 onResume()의 역 연산을 처리 할 수 ​​있습니다. 확실히 그렇다고는 할 수 없습니다.

편집 : 코드를 보지 않고 코드 편집을 수행하면 super.onStart()super.onResume()으로 전화를 잊어 버린 것 같습니다. 그렇지 않다면, 구현을 게시하고 충돌에 대한 스택 추적을하십시오.

+0

좋은 추측 - 이전에 발견 한 첫 번째 실수였습니다.하지만 onStart onResume 메소드를 주석 처리 할 때 여전히 신비하게 작동하는 응용 프로그램이 충돌합니다. 스택 추적을 얻는 방법을 배워야합니다. 내 OP – bph

+0

을 시도하고 업데이트하십시오. 스택 추적으로 업데이트하는 경우, @ 알림을 받으려면 회신하십시오. 그렇지 않으면 알림이 표시되지 않습니다. – kcoppock

2

아니요 쌍의 라이프 사이클 메소드를 오버라이드 (override) 할 필요하지 않습니다. 당신이 명시 적으로 하나의 방법에서 만든 변수를 해제해야하는 경우

는하지만, 그것은 일치하는 방법을 공개하는 것이 합리적이다.


앱 충돌 당신은에서 onCreate를 구현하지만들의 OnDestroy 말 구현하기 위해 생략한다면?

여기서 스택 오버플로에 대한 질문은 closing SQLiteDatabases입니다. 많은 프로그래머는 onCreate()에서 데이터베이스를 열지 만 onDestory()에서 데이터베이스를 닫는 것을 잊지 마십시오.