0

필 수있는 데이터가 영구적입니까? onDestroy()과 같은 안드로이드 라이프 사이클 함수에서 파괴하는 변수가 있습니다.하지만 필자에게 쓰여지는 것은 어떨까요?가비지 수집 후 안드로이드는 Parcelable 데이터를 사용할 수 있습니까?

궁극적으로 나는 그들이 여전히 가비지 컬렉션 (자바 또는 달빅 하나의)를 사용할 수있을 것이다 의도를 통해 내 parcelable 객체의 요소를 전달하려는 것?

고맙습니다.

답변

2

짧은 대답은 예입니다. 분개 가능한 데이터는 영구적입니다.

하면 객체 밖으로 소포을

, 당신은 기본적으로 객체에서의 직렬화 된 버전을 만들 수 있습니다. 직렬화 된 버전을 가지고 나면 개체 자체가 가비지 수집 될 수 있으며 여전히 Parcel을가집니다 (핸들을 계속 처리했다고 가정하거나 Intent를 통해 전송 한 경우 OS에 핸들이 있음) .

는 다른 시간에서 당신은 소포에서 새로운 객체를 생성 할 수 있으며 관계없이 원래의 객체가 가비지 수집되었는지의 여부, 원래 객체의 복사본으로 종료됩니다.

+0

현재 활동으로 전달하지 않은 경우 어떻게 소포를 검색합니까? 이것은 패스하면 그것을 얻을 수있는 방법입니다.'Bundle b = getIntent(). getExtras(); \t \t ObjectA obj = \t \t \t b.getParcelable ("com.package.ObjectA"); – CQM

+0

귀하의 질문에 대한 이해가 확실하지 않습니다. Parcel을 만들 때 그것은 단지 String입니다. 정적 (클래스) 멤버 변수에 저장하거나 IPC를 통해 다른 프로세스 또는 다른 것으로 보낼 수 있습니다. 어쩌면 당신이하고 싶은 일을보다 자세하게 설명 할 필요가있을 것입니다. –

+0

필자는 소포의 개념과 그것이 내 데이터 객체를 어떻게 포함하고 있는지 완전히 이해하지 못했습니다. – CQM