【问题标题】:Best way to store common data in Android在 Android 中存储常用数据的最佳方式
【发布时间】:2016-06-18 14:49:55
【问题描述】:

我是 Android Studio 的新手。 当用户登录我的应用程序时,我使用 putExtra() 发送到 MainActivity:

  • 姓名
  • 姓氏
  • 电子邮件
  • 电话
  • IdUser

在之后的一些活动(3 或 4 个活动)中,我必须使用用户的 id、电子邮件、姓氏。 现在一天,从主要活动到第四个活动,我使用 putExtra() 发送电子邮件、姓名、ID、姓氏。但我只需要最后一个活动中的那些数据,而不是第二个和第三个活动。

有解决这个问题的最佳方法吗?我认为在共享首选项中,但我不希望用户可以看到他的用户 ID,或者我的应用正在保存的数据。

这类问题的最佳做法是什么?

谢谢!

【问题讨论】:

  • SharedPreferences 存储在内部存储中,因此除非您的用户拥有 root 设备,否则他们无法读取它。
  • 是的,但我不想冒险。每个人都如何处理用户 ID?电子邮件等?
  • 可能对您不希望显示的字段使用加密。既然用户输入了他的邮件,为什么您不希望它可见,我不明白。
  • 有很多方法可以解决这个问题。如果要将其保存在内存中,可以将数据附加到 android.app.Application 的实例(或任何其他静态字段),但这有一些缺点。或者,使用您已经尝试过的意图附加功能。如果数据应该是持久的,请使用SharedPreferences 将其保存在应用程序缓存目录或应用程序data 目录中的文件中。用户和其他应用程序都不能访问数据。
  • @marduc812 我不希望用户看到的 id。用户知道他的 id 不是一个好习惯

标签: android android-intent sharedpreferences


【解决方案1】:

您必须使用 SharedPreference 来保持应用中的所有 Activity 都可以访问数据

此外,如果您尝试对您的用户进行身份验证,请查看 Firebase 身份验证https://firebase.google.com/docs/auth/

【讨论】:

  • 好的,但是当一个用户要持久化到数据库中时,比如要购买一个产品,我必须插入IdProduct,nameProduct,user_id,这个use_id是一个外键,但是我怎么能如果我没有在活动之间将它传递到我必须在数据库中持久化的最后一个活动,知道哪个 id 有用户吗?必须将其保存在共享首选项中吗?如果用户更改 id 打开共享首选项会怎样?
猜你喜欢
  • 2020-12-07
  • 2016-06-27
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 2020-07-09
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多