java - SharedPreferences 是否合适,或者有更好的选择吗?

标签 java android android-studio sharedpreferences

我正在尝试熟悉 Android 应用程序开发。我正在尝试制作一个简单的应用程序来学习基本技能,但我不确定如何处理应用程序的这一部分。因此,我需要有关如何走得更远的建议。

我有一个简单的应用程序,带有一个按钮和一个带有 0 的 TextView :分数。单击该按钮时,分数会增加 1(通过简单的 java 代码)。当我关闭应用程序并重新启动时,分数再次为 0。

我想要的:关闭应用程序时,必须保存分数,以便重新启动时出现相同的分数。例如,就像那个鸡蛋,你必须点击一百万次。如果多个用户都拥有该应用程序,那么每个人都应该有自己的分数(当然)。因此,该号码确实应该与电话/帐户相关联。

我已经阅读过有关共享首选项的内容。这听起来像是我正在寻找的:存储变量。但是,我不知道这是否适合我想要使用它的用途。该特定电话/帐户的分数永远不应该丢失。用户可能无法自己调整分数(除非单击按钮)。

我的问题:sharedpreferences 是否适合我想要使用它的用途,或者是否有更好的替代方案?

最佳答案

SharedPreferences 用于在设备本地存储小块数据。因此,如果用户卸载应用程序或清除应用程序数据,您存储在SharedPreferences中的数据将被清除。

如果您不介意卸载/清除数据中的数据丢失,SharedPreferences 无疑是存储如此小信息的最佳方式,因为使用在线数据库是对于这么小的数据来说,这是相当大的杀伤力。

The score should never be lost for that specific phone/account.

但据此,即使用户卸载/清除数据,似乎也不想丢失数据,显然您必须使用像Firebase Real这样的云数据库-时间数据库/Firestore

如果您希望用户登录/注册,则必须使用 Firebase Auth,否则,您只需将数据存储为 Firestore 上的 PhoneNumber : Score 键值对。

希望对你有帮助

关于java - SharedPreferences 是否合适,或者有更好的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59590920/

相关文章:

java - 其他包中的派生类无法访问 protected 嵌套类

android - react-native android project not found 错误

java - 如何停止替换共享首选项中的先前条目?

android:如何设置当我的 ViewFlipper 显示新子项时触发的监听器

android - 我可以为 CI 和 Android Studio 设置单独的 gradle.properties 吗?

java - 建立APK:建立APK时发生错误。您可以在 'Messages' View 中找到错误

java - Azure移动服务: Insert data in to table gives exception

java - JTabbedPane 动态选项卡

java - Spring JDBC "IF NOT EXIST INSERT"主键约束冲突

android - 在某些 Android 手机中找不到相机分辨率 CamcorderProfile