2012-07-06 1 views
1

일부 활동에서 내 onCreate 메소드에서 NullPointerException이 발생합니다. 오랜 시간 동안 게으른 후에 만 ​​발생하기 때문에 디버깅하기가 어렵습니다.오랜 시간 동안의 유휴 상태 후에 Android 활동 다시 시작 -> NullPointerException

아마도 활동이 끝났기 때문에 가비지 수집기가 일부 공유 객체를 파괴했지만 확실하지 않습니다.

적절한 방법으로 처리하려면 어떻게해야합니까?

감사의

+0

여기에 로그 고양이 게시 – MAC

+0

일부 코드를 보는 것이 도움이되지만 항상 null 포인터 검사를하고 기본값을 설정할 수 있습니다 ... – javajavajava

+0

"활동이 종료되어 가비지 수집기가 일부를 파괴했기 때문일 수 있습니다 공유 개체가 있지만 잘 모르겠습니다. " - "아마도." 이것은 상황에 대해 제공 한 작은 정보로 누구나 할 수있는 최선의 방법입니다. –

답변

3

활동 게으름의 기간 후 "종료"하지 않습니다, 그들은 가비지 컬렉터에 의해 재생되지 않습니다. 운영 체제가 전체 프로세스를 중단한다는 것은 발생합니다. 그런 다음 사용자가 활동으로 돌아 오면 운영 체제는 프로세스를 다시 만들고의 최상위 활동 인 만 재 작성합니다. 그래서 다른 활동에 의해 설정된 정적 (클래스) 변수가 있다면 그 모든 것들은 오래 전에 사라졌습니다.

onCreate()에 코드를 게시하고 NullPointerException이 발생한 위치를 지정하십시오 (logcat 참조).

+0

답변 해 주셔서 감사합니다. 여기에 로그 고양이가 없지만 주요 문제는 내 활동간에 개체를 공유하는 데 사용하는 방법입니다. 내가 Parcelable 물건 대신 각 개체에 대한 열쇠와 함께 개체의 글로벌 목록을 사용하고 있습니다. Parcelable이 대답 일 수 있다고 생각합니까? – Fr4nz

+0

귀하가 오류나 일부 코드를 게시하지 않는 한 귀하를 도울 수 없습니다. –

관련 문제