3

Parcelable インターフェースを実装する場合、CREATOR 実装は通常、Parcel を受け取るコンストラクターを使用します。

public Foo(Parcel parcel)

この区画には、次のようなコードがあるかもしれません

mMyField = parcel.readParcelable(MyFoo.class.getClassLoader())

私の知る限り、 parcel.writeParcelable(mMyField) は既にパーセルにクラス名を格納しているため、通常はデフォルトのクラス ローダーを使用して代わりに null を渡すだけで問題ありません。

私の質問は、null を渡す代わりに MyFoo.class.getClassLoader() を使用する必要があるのはいつですか?

4

1 に答える 1

2

はそのクラスに関する情報を格納しますが、クラス自体はParcel格納しないため、そのクラスは のように名前からロードされjava/util/ArrayListます。クラスがクラスパス上にない場合、または.classファイルがリモートサーバー上にある場合でも、アクセスできる別の ClassLoader を使用する必要がありますURLClassLoader

于 2013-09-12T19:31:33.800 に答える