developer tip

describeContents ()가 언제 어디서 사용됩니까?

copycodes 2020. 9. 5. 10:04
반응형

describeContents ()가 언제 어디서 사용됩니까?


Parcelable 메서드가 언제 어디서 호출 되는지 아는 사람이 있습니까?

@Override
public int describeContents() {
  return 0;
}

재정의해야합니다. 하지만 유용한 작업을 고려해야합니까?


비트 마스크 반환 값을 생성 하는 데 사용되는 Parcelablecalled에 정의 된 상수 CONTENTS_FILE_DESCRIPTOR가 있습니다 describeContents().

API 참조CONTENTS_FILE_DESCRIPTOR 에 대한 설명 은 다음과 같습니다.

describeContents ()와 함께 사용하기위한 비트 마스크 : 각 비트는 마샬링 될 때 잠재적으로 특별한 의미가있는 것으로 간주되는 일종의 객체를 나타냅니다.

즉, FileDescriptorParcelable 객체를 넣어야하는 경우 CONTENTS_FILE_DESCRIPTORdescribeContents ()의 반환 값으로 지정해야합니다 . 즉, " 특수 객체 "( describeContents()의 설명에서)는 실제로 다음을 의미 FileDescriptor합니다..

이 전체 Parcelable 기능은 미완성 된 것처럼 보입니다 (읽기 : 잘못된 디자인). 문서에 또 다른 이상한 점이 있습니다.

Parcelable 인터페이스를 구현하는 클래스에는 Parcelable.Creator 인터페이스를 구현하는 객체 인 CREATOR라는 정적 필드도 있어야합니다.

사람이 읽을 수있는 형식으로 정의 된 규칙에 따라 다중 상속을 구현합니까? :-)

C ++ 프로그래머가 설계 한 것 같고 Parceable어느 시점에서 그는 깨달았습니다. 오, 젠장, Java에는 다중 상속이 없습니다 ... :-)


가능한 값은 0 또는 CONTENTS_FILE_DESCRIPTOR 두 개뿐입니다.

POLO를 직렬화하는 경우이 값은 항상 0이어야하며 CONTENTS_FILE_DESCRIPTOR는 * unix 시스템에서 파일 설명자 (FD)를 직렬화 할 수있는 ParcelFileDescriptor 용으로 예약되어 있습니다.

참고 URL : https://stackoverflow.com/questions/4076946/parcelable-where-when-is-describecontents-used

반응형