use*_*019 30 serialization android parcel parcelable android-intent
所以我知道建议在Android中使用Parcelable而不是Serializable,因为它更快.
我的问题是:使用Serializable是不可避免的吗?
如果我有一个我想要序列化的自定义对象,那么假设我有以下类定义
public class Person {
String name;
int Age;
...
....
}
Run Code Online (Sandbox Code Playgroud)
使这个parcelable很容易,因为Person类包含parcel.write*()支持的类型,即parcel.writeString和parcel.writeInt
现在,如果Person类如下:
public class PersonTwo {
MyCustomObj customObj;
String name;
int Age;
...
....
}
Run Code Online (Sandbox Code Playgroud)
我怎么想包裹MyCustomObj对象?看来我需要再次使用serializable吗?但同样,我认为使用serializable是慢的,似乎我们别无选择,只能在这种情况下使用它.
我不明白
谁能告诉我在这种情况下我会如何包裹PersonTwo?
Lal*_*ani 16
Ajay给出的链接正是您所寻找的,如何做到这一点.好吧,你可以做的是实现Parcelable你的CustomObject1并Parcelable为它创建一个类,然后你可以在另一个包含它的类中使用Parcelable该类.ParcelParcelableCustomObjects
public class CustomObject1 implements Parcelable {
// parcelable code CustomObject1
}
public class CustomObject2 implements Parcelable {
private CustomObject1 obj1;
// add CustomObject1 here with getter setter
// parcelable code for CustomObject2
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeParcelable(obj1, flags);
}
private void readFromParcel(Parcel in) {
obj1 = in.readParcelable(CustomObject1.class.getClassLoader());
}
............
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30395 次 |
| 最近记录: |