Мне нужно знать, как сделать внутренний класс Parcelable, чтобы объекты его типа могли передаваться через AIDL в удаленную службу. Я не могу найти никакой информации по этому поводу.
Вот пример кода того, что я пытаюсь выполнить, но он не компилируется, потому что CREATOR в классе Bar не может быть статическим (то есть потому, что он находится во внутреннем классе). Я не могу сделать Bar статическим внутренним классом и не могу переместить Bar за пределы класса Foo (другие зависимости в системе). Мне также нужно знать, как я буду ссылаться на класс Bar из файла AIDL. Любая помощь приветствуется.
public class Foo implements Parcelable
{
private int a;
public Foo()
{
}
public Foo(Parcel source)
{
this.a = source.readInt();
}
public int describeContents()
{
return 0;
}
public void writeToParcel(Parcel dest, int flags)
{
dest.writeInt(this.a);
}
public static final Parcelable.Creator<Foo> CREATOR
= new Parcelable.Creator<Foo>()
{
...
}
public class Bar implements Parcelable
{
private int b;
public Bar()
{
}
public Bar(Parcel source)
{
this.b = source.readInt();
}
public int describeContents()
{
return 0;
}
public void writeToParcel(Parcel dest, int flags)
{
dest.writeInt(this.b);
}
public static final Parcelable.Creator<Bar> CREATOR
= new Parcelable.Creator<Bar>()
{
...
}
}
}