Java 当我的android应用程序长时间处于非活动状态时,如何防止它丢失用户数据?

Java 当我的android应用程序长时间处于非活动状态时,如何防止它丢失用户数据?,java,android,android-studio,Java,Android,Android Studio,我正在帮助开发一个android应用程序,该应用程序包括跟踪一个人旅行的次数,并根据旅行的距离为该人添加点数。这意味着必须始终保持数据或互联网接入 我在应用程序中遇到的问题是,当手机设备处于睡眠状态或应用程序长时间处于非活动状态时,它将丢失所有用户信息(用户名、电子邮件和积分信息)。即使我让设备使用这种方法来跟踪旅行的人,一段时间后它仍然会丢失信息。因此,它不允许我将行驶距离数据保存给用户 我一直在跟踪导致这种情况的原因,发现随着时间的推移,应用程序的内存将停止运行,导致用户信息变为空。我曾尝试

我正在帮助开发一个android应用程序,该应用程序包括跟踪一个人旅行的次数,并根据旅行的距离为该人添加点数。这意味着必须始终保持数据或互联网接入

我在应用程序中遇到的问题是,当手机设备处于睡眠状态或应用程序长时间处于非活动状态时,它将丢失所有用户信息(用户名、电子邮件和积分信息)。即使我让设备使用这种方法来跟踪旅行的人,一段时间后它仍然会丢失信息。因此,它不允许我将行驶距离数据保存给用户

我一直在跟踪导致这种情况的原因,发现随着时间的推移,应用程序的内存将停止运行,导致用户信息变为空。我曾尝试在网上寻找解决方案,但android开发者网站没有给出任何明确的解决方案。我能找到的最接近的是关于直接引导模式的页面:

我仔细阅读了页面,但由于某些原因,应用程序出现错误,表示无法运行代码: Context deviceProtected=appContext.createDeviceProtectedStorageContext(); 整个页面都没有很好地解释我应该如何使用这些代码,或者应该在哪里运行某些代码

有谁知道我的问题的更好的解决方案,或者知道如何正确使用上下文类和直接引导来防止应用程序内存丢失


TL;DR当应用程序长时间处于非活动状态时,如何防止我的应用程序丢失用户/配置文件数据,并保持某些方法/服务运行?

“如何防止我的应用程序丢失用户/配置文件数据”--将数据保存到数据库、
SharedReferences
或其他形式的文件中。“并在应用程序长时间处于非活动状态时保持某些方法/服务的运行”——你不需要。您的进程不能永远运行。您可以使用前台服务最大限度地延长运行时间,但您仍应定期将数据保存到磁盘。实际上,我尝试使用SharedReferences保存数据。然而,我在使用它时也遇到了问题。出于某种原因,在我的程序将键值对保存到编辑器中后,不会创建SharedReferences文件。我读到应用程序的数据文件中应该有一个XML文件,但我没有看到它。有什么我遗漏的步骤吗?“但我没有看到”-我们不知道你在哪里寻找它
SharedReferences
文件存储在Android SDK所指的应用程序部分,您通常只能通过IDE或
adb
命令来查看。我正在Android Studio上的设备文件浏览器中查看它。我检查了data/data/“我的应用”文件夹。它说“运行方式:无法设置功能”,而不是内部的文件。我决定也试着通过电脑检查内部数据。我检查了Phone/Android/Data/“我的应用”文件夹,但我仍然没有看到我的数据应该存储在其中的首选项文件。“它说的是“运行方式:无法设置功能”,而不是其中的文件”——也许您正在运行的是
发布版
构建版,而不是
调试版。“我决定也尝试通过我的计算机检查内部数据”——这是不可能的,除非通过Android Studio、
adb
或类似工具。“我检查了Phone/Android/Data/“我的应用”文件夹,但我仍然没有看到我的数据应该存储在其中的首选项文件”——这就是Android SDK所指的首选项文件。首选项不存储在那里。