是否可以在 Realm 中保留 3rd Party Parcelable 对象?
Is it possible to persist 3rd Party Parcelable Objects in Realm?
Realm 是否支持持久化第 3 方 Parcelable 对象(例如 Maps API 中的 MarkerOptions class)?
因此,我正在为 Android 构建一个路线规划应用程序,我需要保留来自地图 API 的 LatLng、MarkerOptions 和 Polyline 对象列表 - 所有这些都实现了 Parcelable。我想我会尝试使用 Realm 来持久化对象列表。
我阅读了 Realm 中的 Parceler 库支持,并试图在 Realm 中保留一个包含 LatLng 对象的 Parcelable class。
import io.realm.RealmObject;
import io.realm.SavedLocationRealmProxy;
@Parcel
public class SavedLocation extends RealmObject{
private String locationName;
private LatLng location;
private String areaName;
public SavedLocation() {
}
public SavedLocation(String locationName, LatLng location) {
this.locationName = locationName;
this.location = location;
}
public SavedLocation(String locationName, LatLng location, String areaName) {
this.locationName = locationName;
this.location = location;
this.areaName = areaName;
}
...
编译未完成并出现此错误
Error:(7, 8) error: Type com.google.android.gms.maps.model.LatLng of field location is not supported
我也尝试按照 Realm documention
的指示添加此注释
@Parcel(implementations = { SavedLocationRealmProxy.class },
value = Parcel.Serialization.BEAN,
analyze = { SavedLocation.class })
public class SavedLocation extends RealmObject{
...
但是,由于包含 LatLng class,因此不会创建 SavedLocationRealmProxy。
刚刚提供对 Parceler 的支持是为了使 RealmObjects 可打包还是 Parcelable 对象在 Realm 中持久化?
谢谢..
Parceler 的支持允许将 RealmObjects 打包在 Intents/etc 中(正如 CommonsWare 在评论中指出的那样)。请注意,当 RealmObjects 被分割时,Realm 对象与 Realm 断开连接。
为什么会出现此错误?
LatLng 不扩展 RealmObject
。因此它不能保存到 Realm 中。为了保存 LatLng 对象,您需要创建自己的 LatLng 对象(例如 MyLatLng
或其他对象)并将它们映射到上面。
如果您正在寻找使用 Realm 的地理点的良好示例,您可能想在此处查看 Thorben Primke 的 realm-mapview 示例:https://github.com/thorbenprimke/realm-mapview
在相关说明中,可以在此处跟踪 Realms 地理点支持:https://github.com/realm/realm-java/issues/1772
Realm 是否支持持久化第 3 方 Parcelable 对象(例如 Maps API 中的 MarkerOptions class)?
因此,我正在为 Android 构建一个路线规划应用程序,我需要保留来自地图 API 的 LatLng、MarkerOptions 和 Polyline 对象列表 - 所有这些都实现了 Parcelable。我想我会尝试使用 Realm 来持久化对象列表。
我阅读了 Realm 中的 Parceler 库支持,并试图在 Realm 中保留一个包含 LatLng 对象的 Parcelable class。
import io.realm.RealmObject;
import io.realm.SavedLocationRealmProxy;
@Parcel
public class SavedLocation extends RealmObject{
private String locationName;
private LatLng location;
private String areaName;
public SavedLocation() {
}
public SavedLocation(String locationName, LatLng location) {
this.locationName = locationName;
this.location = location;
}
public SavedLocation(String locationName, LatLng location, String areaName) {
this.locationName = locationName;
this.location = location;
this.areaName = areaName;
}
...
编译未完成并出现此错误
Error:(7, 8) error: Type com.google.android.gms.maps.model.LatLng of field location is not supported
我也尝试按照 Realm documention
的指示添加此注释@Parcel(implementations = { SavedLocationRealmProxy.class },
value = Parcel.Serialization.BEAN,
analyze = { SavedLocation.class })
public class SavedLocation extends RealmObject{
...
但是,由于包含 LatLng class,因此不会创建 SavedLocationRealmProxy。
刚刚提供对 Parceler 的支持是为了使 RealmObjects 可打包还是 Parcelable 对象在 Realm 中持久化?
谢谢..
Parceler 的支持允许将 RealmObjects 打包在 Intents/etc 中(正如 CommonsWare 在评论中指出的那样)。请注意,当 RealmObjects 被分割时,Realm 对象与 Realm 断开连接。
为什么会出现此错误?
LatLng 不扩展 RealmObject
。因此它不能保存到 Realm 中。为了保存 LatLng 对象,您需要创建自己的 LatLng 对象(例如 MyLatLng
或其他对象)并将它们映射到上面。
如果您正在寻找使用 Realm 的地理点的良好示例,您可能想在此处查看 Thorben Primke 的 realm-mapview 示例:https://github.com/thorbenprimke/realm-mapview
在相关说明中,可以在此处跟踪 Realms 地理点支持:https://github.com/realm/realm-java/issues/1772