首页 > 解决方案 > 如何保存我的应用偏好并在重新安装或更改设备后检索它们

问题描述

我是应用程序开发的新手...

我在文档的某处读到:“......在大多数情况下,您希望使用 SharedPreferences,因为它会自动备份并迁移到新设备......”

首次安装时,我的应用会使用 SharedPreferences 保存一些设置。它工作得很好,但如果我卸载该应用程序或将其安装在另一台设备上,首选项设置就会丢失。

如果用户更改手机或类似设备,我如何才能以某种方式在谷歌中在线保存这些设置以便能够检索它们......

有人能指出我正确的方向吗?

标签: androidkotlin

解决方案


我在文档的某处读到:“......在大多数情况下,您希望使用 SharedPreferences,因为它会自动备份并迁移到新设备......”

  1. 您的话“备份并迁移到新设备”既无处可写,也不真实。
  2. 我们使用SharedPreferences是为了尽量减少数据库操作,就像把变量放在手边一样。

首次安装时,我的应用会使用 SharedPreferences 保存一些设置。它工作得很好,但如果我卸载该应用程序或将其安装在另一台设备上,首选项设置就会丢失。

  1. 如果您想存储或记住设备相关设置,请使用设备 ID/imei_id 并将其存储在您的 Web 服务器 mysql 数据库中
  2. 即使用户从设备上卸载应用程序并在未来任何时候再次安装,通过发送 deviceid / imei_id 向服务器调用异步任务并从 mysql 数据库中获取其设置并显示它。

如果用户更改手机或类似设备,我如何才能以某种方式在谷歌中在线保存这些设置以便能够检索它们......

  1. 如果用户更改设备,您将无能为力。
  2. 一种方法是,将公共 device_id 级别密钥保留在服务器上。
  3. 如果用户更改设备并使用该密钥,则向他显示响应,此密钥已分配给另一台设备,但如果您相同,请等待我们的支持
  4. 打电话给他,确认他是新设备的同一个老用户,并从mysql中删除他的旧条目并将旧密钥分配给新设备条目
  5. 或使用 OTP SMS 系统识别具有唯一电话号码的现有客户
  6. 如果 OTP 验证码正确,则从服务器获取该用户的设置,删除旧的 mysql 条目,使用旧密钥和手机号码修改新条目

这应该是你的方向

编辑:2##

我希望存在一个更简单的解决方案,但是....

到目前为止,开发人员没有捷径可走,也永远不会。

为什么,没有捷径/简单的方法?

由系统软件操作的任何设备(移动设备、台式机/笔记本电脑/任何 AI 设备)都能够按照其结构执行任务。

例如:android是基于java的,显然你可以制作基于javascript的应用程序,但它是对现有系统的扩展,Android仍然有Java虚拟机的基础。(Dalvic / Malvic 喜欢)

  1. 因此,使用原生总是更好java
  2. 是的,Kotlin现在是最好的选择,而且比混合方法更好
  3. 每种方式都有自己的优点,缺点
  4. 如果您是开发人员,则应采用native方法
  5. 现在你的 java 代码永远不知道它在哪个版本上运行,所以你必须check android versions programming wise决定 Marshmallow 之上和 marshmallow 之下的流程,并且它是由开发人员通过编码明确完成的。
  6. 例如,一旦用户注册,他就不再显示请重新注册屏幕,这不是魔术,也不是google ,也不是java ,也不是android,开发人员有decided,,,,,,那个。plannedarchitectureddesignedcodedtested
  7. 即使是开发人员也需要照顾exceptions,您需要处理它才能将您的应用程序从crashing.
  8. 简而言之,开发者是,god谁创造了他的own universe,一切都是如此。pre-plannedverified

推荐阅读