我们需要在许多地方获取用户对象,其中包含许多字段.登录后,我想保存/存储这些用户对象.我们怎样才能实现这种情况?
我不能这样存储它:
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString("BusinessUnit", strBusinessUnit);
Run Code Online (Sandbox Code Playgroud) 我有一些对象,位置,在我的应用程序中存储在ArrayList中,并使用parcelable在活动之间移动它们.该对象的代码如下所示:
public class Location implements Parcelable{
private double latitude, longitude;
private int sensors = 1;
private boolean day;
private int cloudiness;
/*
Måste ha samma ordning som writeToParcel för att kunna återskapa objektet.
*/
public Location(Parcel in){
this.latitude = in.readDouble();
this.longitude = in.readDouble();
this.sensors = in.readInt();
}
public Location(double latitude, double longitude){
super();
this.latitude = latitude;
this.longitude = longitude;
}
public void addSensors(){
sensors++;
}
public void addSensors(int i){
sensors = sensors + i;
}
+ Some getters and setters. …Run Code Online (Sandbox Code Playgroud) 我正在使用HERE SDK开发一个应用程序,到目前为止一切正常.我得到像这样的错误:
Fatal signal 11 (SIGSEGV), code 1, fault addr 0x750057 in tid 10206 (FinalizerDaemon)
或者这个:
Fatal signal 11 (SIGSEGV), code 1, fault addr 0x94789680 in tid 24605 (FinalizerDaemon)
他们让我的应用程序崩溃.
它并不总是相同的错误,但它们总是在我的Logcat中独自出现,没有其他信息.
在我的所有应用程序中,我使用HERE对象和服务,甚至通过打印堆栈跟踪我没有获得有关错误的更多信息.
我只是注意到这些错误几乎是随机出现的,但只有在我使用这些对象/服务时才会出现.
我用一个真实的设备测试我的应用程序,索尼Xperia Z3紧凑型,所以我不认为它来自这里.
我真的迷路了,所以如果有人对如何获得有关错误的更多信息有任何想法,请帮忙
编辑:
05-09 23:04:10.148 6770-6782/? A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x4 in tid 6782 (FinalizerDaemon)
05-09 23:04:10.266 30179-30179/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-09 23:04:10.266 30179-30179/? I/DEBUG: UUID: 5569a1b9-c913-4101-99fa-5099e2cadd48 …Run Code Online (Sandbox Code Playgroud) 我正在尝试序列化我的位置类(使用android.location类)
但是,它给了我一个错误!
11-21 21:25:37.337: W/System.err(3152): java.io.NotSerializableException: android.location
Run Code Online (Sandbox Code Playgroud)
所以,我试图扩展android.location.Location课程.
private class NewLocation extends Location implements Serializable {
private String Provider;
private double Latitude, Longitude, Altitude;
private float bear;
public NewLocation(Location l) {
super(l);
Provider = l.getProvider();
Latitude = l.getLatitude();
Longitude = l.getLongitude();
Altitude = l.getAltitude();
bear = l.getBearing();
}
}
Run Code Online (Sandbox Code Playgroud)
之后,我试图序列化扩展类,但同样的错误.
这是序列化代码
public static byte[] serialize(Object obj) throws IOException {
ByteArrayOutputStream bao = new ByteArrayOutputStream();
ObjectOutput oos = new ObjectOutputStream(bao);
byte[] data = null;
oos.writeObject(obj);
oos.flush();
oos.close();
data = …Run Code Online (Sandbox Code Playgroud)