2012-01-06 5 views
0

내 응용 프로그램의 주요 활동이 "파괴"되고 있습니다. 인쇄중인 파괴중인 로그 메시지가 있습니다. 그러나 마무리가 호출되는 경로는 실행되지 않습니다.android : 파괴 스택 추적

그래서 destroy()를 호출 한 원인을 어떻게 알 수 있는지 알고 싶습니다. 내 코드 또는 다른 시스템 오류에서 끝났습니까?

@Override 
protected void onDestroy() { 
    try { 
     super.onDestroy(); 

     Log.i("StartUpActivity", "OnDestroy"); 
     if (asyncTaskForSync != null && !asyncTaskForSync.isCancelled()) 
      asyncTaskForSync.cancel(true); 
     if (DatabaseManager.getInstance() != null) 
      DatabaseManager.getInstance().close(); 

     if (Utils.imageLoader != null) 
      Utils.imageLoader.stopThread(); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

} 

참고 : 답변 : 나는 유지했다 안드로이드 : 내 시작 활동에 대한 noHistory = "true"로. 이 페이지가 다른 활동에서 언론에 다시 표시되지 않게하고 싶었습니다. 그리고 저는이 활동을 망가 트리면서 db close처럼 깨끗하게 지켜주었습니다. 그래서 nohistory = true로 인해이 활동이 자동으로 삭제되어 모든 리소스가 닫히고 내 애플리케이션에서 예외가 발생합니다.

이 플래그를 제거하고 두 번째 활동의 onbackpressed를 무시하여 수정했습니다. 귀하의 답변

덕분에

+1

http://developer.android.com/guide/topics/fundamentals/activities.html "구성 변경 처리"? onDestroy는 휴대 전화의 기본 뒤로 버튼이나 완성 된 버튼을 누르거나 코드에서 볼 수있는 특정 이벤트가 완료되면 asyncTask에있을 때만 호출됩니다 – Maverick

+0

감사합니다. 내 문제는 다른. 단서와 귀하의 시간을 주셔서 감사합니다 내 질문에 대답을 편집했습니다 – png

답변

1

은 활동이 파괴 될 수있는 몇 가지 이유가 있습니다. 예 : 사용자가 기기를 회전하면 기본 동작은 활동을 파괴하고 새 활동을 만드는 것입니다.

참조를 사용하여 프로그램의 종료()를 호출 한 곳 ... 여기

+0

도와 주셔서 감사합니다. 나는 내 질문과 해결책을 업데이트했다. 다시 한 번 감사드립니다. – png