Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MonoDroid:在活动之间共享非平凡数据_Android_Xamarin.android - Fatal编程技术网

Android MonoDroid:在活动之间共享非平凡数据

Android MonoDroid:在活动之间共享非平凡数据,android,xamarin.android,Android,Xamarin.android,我有一些多个活动需要处理的数据。基本上有一个只读屏幕和多个挂起的编辑屏幕 起初,我考虑将数据作为字符串参数传递给intent,但如果用户在编辑字段后按下back按钮,这些更改将丢失 那么,在不同的活动中共享数据的推荐方式是什么?我应该在每次页面转换之前将其保存到临时文件中吗?最简单的方法可能是将对象存储在全局可用的位置,例如在应用程序的应用程序对象上(当然,如果还没有,则创建一个)。这可以是静态的,也可以是实例的,这取决于您希望它如何工作 另一个选项是将对象序列化为某种字符串表示形式(XML、J

我有一些多个活动需要处理的数据。基本上有一个只读屏幕和多个挂起的编辑屏幕

起初,我考虑将数据作为字符串参数传递给intent,但如果用户在编辑字段后按下back按钮,这些更改将丢失


那么,在不同的活动中共享数据的推荐方式是什么?我应该在每次页面转换之前将其保存到临时文件中吗?

最简单的方法可能是将对象存储在全局可用的位置,例如在应用程序的应用程序对象上(当然,如果还没有,则创建一个)。这可以是静态的,也可以是实例的,这取决于您希望它如何工作


另一个选项是将对象序列化为某种字符串表示形式(XML、JSON等),将其传递给下一个活动,并在另一端对其进行反序列化。这会起作用,但肯定有点重。

不是序列化对象,而是为要传递对象的类实现parcelable接口Parcelable是安卓特有的概念,建议使用它以获得最佳性能。

第一种选择听起来风险很大。我的印象是,操作系统可以随时创建或销毁该应用程序,因此任何静态字段都可能会消失,而不会引起太多注意。第二个选项因“后退”按钮而无法工作。上一页将从日志中获取数据,而不是从当前页。是的,您的应用程序可以被销毁,但通常不会在前台被销毁。如果该设备作为前台应用程序时必须销毁应用程序以释放资源,则可能会出现更大的问题。