为什么Android提供了2个用于序列化对象的接口?Serializable对象是否与Android Binder和AIDL文件进行交互?
我需要能够在我的应用程序中的多个活动中使用一个对象,并且它需要是同一个对象.做这个的最好方式是什么?
我已经尝试将对象设置为"公共静态",因此可以通过其他活动访问它,但由于某种原因,这并没有削减它.还有另一种方法吗?
我理解Enum是Serializable.因此,这样做是安全的.(selectedCountry是enum Country)
public enum Country {
Australia,
Austria,
UnitedState;
}
Run Code Online (Sandbox Code Playgroud)
@Override
public void onActivityCreated (Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
selectedCountry = (Country)savedInstanceState.getSerializable(SELECTED_COUNTRY_KEY);
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putSerializable(SELECTED_COUNTRY_KEY, selectedCountry);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在自定义枚举类中有非可序列化成员,该怎么办?例如,
package org.yccheok;
import org.yccheok.R;
/**
*
* @author yccheok
*/
public enum Country {
Australia(R.drawable.flag_au),
Austria(R.drawable.flag_at),
UnitedState(R.drawable.flag_us);
Country(int icon) {
this.icon = icon;
nonSerializableClass = new NonSerializableClass(this.toString());
}
public int getIcon() {
return icon;
} …Run Code Online (Sandbox Code Playgroud) 首先,我检查了这个答案.
我想要做的是扩展Location类调用它LocationPlus有一些成员变量.我想要实现的功能是将LocationPlus类的对象从一个活动传递到另一个活动.
这是我的 CREATOR
public static final Parcelable.Creator<LocationPlus> CREATOR = new Parcelable.Creator<LocationPlus>() {
@Override
public LocationPlus createFromParcel(Parcel source) {
return new LocationPlus(source);
}
@Override
public LocationPlus[] newArray(int size) {
return new LocationPlus[size];
}
};
Run Code Online (Sandbox Code Playgroud)
我面临的问题是这个错误
Implicit super constructor Location() is undefined. Must explicitly invoke another constructor
Run Code Online (Sandbox Code Playgroud)
在尝试编写构造函数时
public LocationPlus(Parcel in) {
Run Code Online (Sandbox Code Playgroud)
有评论的人要求我发布LocationPlus类,所以在这里
public class LocationPlus extends Location{
private int mBattery = -1;
public LocationPlus(String locationName) {
super(locationName);
}
public LocationPlus(Location location) { …Run Code Online (Sandbox Code Playgroud) 我正在编写一个需要存储数据的应用程序.单个数据包大约有4个类,它们之间有很多依赖关系.例如,类A有一个对象列表B和B有一个对象列表C和几个依赖项......
我想知道什么会更好.将它们保存在SQLite数据库中或单独序列化每个包并将它们存储在序列化文件中?