Monodroid将可解包的对象捆绑在一起

问题描述:

所以我一直在努力将一些值放入我的OverScan的OnSaveInstanceState中。我需要在重新启动活动时保存一些类对象,这意味着它们必须是可以分类的,这对于Monodroid来说似乎不可能实现?Monodroid将可解包的对象捆绑在一起

来源:http://docs.xamarin.com/android/about/limitations

我能做些什么来保存到包这些类的对象,而不parcelable?我从服务器加载数据,并且我不希望再次执行此操作,例如再次调用OnCreate方法的用户循环。因此,将它们保存起来会很好,这样可以节省服务器偶尔出现的旋转等问题。

最初为这个问题接受的答案,虽然在回答时是正确的,但不再是这种情况。

我原本通过更多的搜索发现了这个实施上述建议,再后来就:

http://dan.clarke.name/2012/09/implementing-iparcelable-in-mono-for-android/

的功能现在支持和上面的链接是如何实现它一个很好的资源。

+0

似乎终于支持Monodroid中的Parcelable了,现在这是正确的答案。 – 2013-07-11 14:28:45

在Mono for Android中不可能实现IParcelable接口。从the docs摘自:

的IParcelable接口不能在这个时间,因为 的android.os.Parcelable接口需要实现:

  • 类实现Parcelable接口也必须有一个名为CREATOR静态字段,这是一个实现Parcelable.Creator接口的对象。

由于mandroid.exe当前不能生成字段,因此该接口 无法实现。支持将在未来的版本中添加。

您可以采取的另一种方法是将对象存储在活动之外,例如在Application的子类中。您可以使用静态属性将数据存储在应用程序类中,也可以通过使用活动中的Application属性来访问其中的实例属性/方法。有关使用Application的更多详细信息,请参阅this question

+0

结束了对这种情况使用静态变量,感谢清除 – 2012-03-22 09:37:50

+1

文档已被更新,据推测现在支持这个(“此限制适用于以前的版本到4.1版本。在4.1版本中,您可以使用ExportAttribute和ExportField属性来生成可明确命名的Java方法和字段。“)。我现在要给它一个镜头,并发布任何积极的发现。 – samosaris 2013-01-04 17:44:28

+1

Xamarin的官方示例:https://github.com/xamarin/monodroid-samples/blob/master/ExportAttribute/ExportAttributeTest/MainActivity.cs – samosaris 2013-01-04 17:49:59