我需要在activities
之间分享一些敏感数据
我有两个EditText
,基本上是username
和password
我正在使用一个web服务,它基于提供的用户名和密码返回一些用户信息(DataType:String
)。与userid
,useremail
etc..
类似,基本上采用CSV格式
我在整个申请过程中都需要这些信息。但我无法弄清楚哪种方式更好。
- 到目前为止,我发现的一种方法是使用sqlite with MonoAndroid
- 我发现的其他方式是使用Application class
我今天刚开始学习android,但我想知道是否还有其他方法可以共享数据?
答案 0 :(得分:3)
正如您所提到的,全局Application
类和数据库是共享应用程序范围数据的两种好方法。需要注意的一件事是,当应用程序在后台时,您的Application类可以被回收,因此您将丢失任何未持久存储的数据。
除数据库外,您还可以将数据持久保存到文件系统中。来自Xamarin的This recipe有一个直接写入文件的例子。您需要进行文件访问的大多数类都位于System.IO
命名空间中。 Mono for Android还支持isolated storage,它为读取和写入文件提供了更高级别的API。
如果您只需要在活动之间直接传递数据,则可以通过将其作为额外添加到intent中来实现。 This recipe解释了如何做到这一点。
如果您希望以更加可管理的方式包含对应用程序的其他部分甚至外部应用程序访问的特定资源的访问权限,您可以考虑实施content provider。 Android本身为联系人和媒体等资源提供了几个内置的内容提供商,如果你需要一个使用它的例子。 This recipe解释了如何从联系人提供商处阅读。