반응형
Parcelable 인터페이스의 describeContents () 목적
Parcelable 인터페이스의 describeContents () 함수를 구현하는 목적은 무엇입니까? 대부분의 프레임 워크 코드는 구현으로 0을 반환합니다. 문서에 "Parcelable에 의해 정렬 된 특수 개체 유형 집합을 나타내는 비트 마스크"가 있습니다. 누군가이 기능에 대해 설명 할 수 있습니까? (아마도 예를 들어)
클래스에 자식 클래스가있을 수 있으므로이 경우 각 자식은 describeContent()
서로 다른 값으로 반환 할 수 있으므로 어떤 특정 개체 유형에서 만들지 알 수 있습니다 Parcel
. 예를 들면 다음과 같습니다- Parcelable
상위 클래스 ( MyParent
) 에서 메소드 구현의 예 :
//************************************************
// Parcelable methods
//************************************************
//need to be overwritten in child classes
//MyChild_1 - return 1 and MyChild_2 - return 2
public int describeContents() {return 0;}
public void writeToParcel(Parcel out, int flags)
{
out.writeInt(this.describeContents());
out.writeSerializable(this);
}
public Parcelable.Creator<MyParent> CREATOR
= new Parcelable.Creator<MyParent>()
{
public MyParent createFromParcel(Parcel in)
{
int description=in.readInt();
Serializable s=in.readSerializable();
switch(description)
{
case 1:
return (MyChild_1 )s;
case 2:
return (MyChild_2 )s;
default:
return (MyParent )s;
}
}
public MyParent[] newArray(int size)
{
return new MyParent[size];
}
};
이 경우 Parcelable
자식 클래스의 모든 메서드 를 구현할 필요는 없습니다.describeContent()
참고 URL : https://stackoverflow.com/questions/4778834/purpose-of-describecontents-of-parcelable-interface
반응형
'program tip' 카테고리의 다른 글
람다 식의 열거 형은 다르게 컴파일됩니다. (0) | 2020.11.09 |
---|---|
Castle DynamicProxy-GTR로 사용되는 GTP와 관련된 프록시를 만들 때 실패 (0) | 2020.11.09 |
다른 플랫폼과 함께 iOS GameKit의 "Bluetooth Bonjour"사용 (0) | 2020.11.09 |
새 업스트림 브랜치에 대한 GitHub 풀 요청 (0) | 2020.11.09 |
오류 '보안 경고 : Rack :: Session :: Cookie'에 제공된 비밀 옵션이 없습니다. (0) | 2020.11.09 |