所以我一直在努力将一些值放入我的重写OnSaveInstanceState中。我需要在活动重启时保存一些类对象,这意味着它们必须是可分配的,这对于Monodroid似乎是不可能实现的?
来源:http://docs.xamarin.com/android/about/limitations
如何在没有parcelable的情况下将这些类对象保存到包中?我从服务器加载数据,我不希望再次这样做,例如在用户轮换上,再次调用OnCreate方法。因此将它们保存起来会很好,这可以为服务器节省偶尔旋转等压力。
答案 0 :(得分:5)
这个问题最初接受的答案虽然在答案时是真的,但现在已不再适用。
我最初实施了上述建议,然后通过更多搜索找到了这个:
http://dan.clarke.name/2012/09/implementing-iparcelable-in-mono-for-android/
现在支持该功能,上述链接是如何实现它的绝佳资源。
答案 1 :(得分:4)
无法在Mono for Android中实现IParcelable
界面。取自the docs:
此时无法实现IParcelable接口,因为 android.os.Parcelable接口需要:
由于mandroid.exe目前无法生成字段,因此这个界面 无法实施。将来的版本中将添加支持。
- 实现Parcelable接口的类还必须有一个名为CREATOR的静态字段,它是实现
的对象 Parcelable.Creator界面。
您可以采取的另一种方法是将对象存储在活动之外,例如在子类Application
的类中。您可以使用静态属性将数据存储在应用程序类中,也可以使用活动中的Application
属性访问其上的实例属性/方法。有关使用应用程序的更多详细信息,请参阅this question。