gpt4 book ai didi

java - 如何在 Android 应用程序中保存天文钟耗时

转载 作者:行者123 更新时间:2023-11-30 02:43:53 25 4
gpt4 key购买 nike

我正在为几个特定位置开发一种 parking 计时器应用程序。该应用程序询问用户他在哪里(下拉菜单,保存列字母和数字,如 A6),然后显示具有给定位置的屏幕、从 0 开始计数的计时器(计时器类)以及必须支付的价格退出(使用经过的小时数 * 基本价格计算)。

这一切都很好,直到用户或操作系统终止应用程序(任务管理器或内存管理)。然后,下次用户打开该应用时,他会回到主菜单,但他的位置、时间和价格都已丢失。

我需要一种方法来保存所有用户信息并能够在应用重启时加载这些信息。

最初我想将用户的位置和计时器启动的确切时间(可能是 DateTime.Now() ?)保存到内部存储中的 .txt 文件中,以便读取:

 mallname,columnLetter,columnNumber,startTime

这样,如果应用程序被终止,或者任何时候应用程序从头开始启动,MainActivity 将首先检查应用程序的内部存储中是否存在 file.txt,如果存在,它会立即启动 lastPage Activity , 读取 .txt 文件以将值作为参数传递(因此,逗号分隔)。如果没有这样的文件,它就会正常进行。最后一页确实包含一个重置按钮,该按钮将删除文件,以便应用程序在下次使用时可以正常启动。

我不知道这种方法的效率如何,但这是第一个想到的。但是,我不知道该怎么做。我在 C# 中为 Windows Phone 编写了完全相同的方法,但我不知道如何将它转换为 Android 的 Java。此外,在 C# 中我实际上并没有使用计时器,而是保存了 startTime 并使用了一个计时器来计算 startTime - DateTime.now() 在每个滴答声(每秒)上并更新 textBlock 以显示它。

如有任何帮助,我们将不胜感激。

最佳答案

通常用户数据应该保存到 SQLite 数据库中,但是在您的情况下,由于您谈论的是几个变量,将这些值保存在应用程序的 SharedPreferences 中会容易得多。 .

对于您想要保存的每个值,将此行添加到您的 Chronometer 的 onChronometerTick() 方法中:

PreferenceManager.getDefaultSharedPreferences(this).edit().putInt("your_key", <Your_value>).commit();

这可以稍后(例如,每当您的应用程序从崩溃中恢复时)通过以下方式检索:

PreferenceManager.getDefaultSharedPreferences(this).getInt("your_key", <Default_value>);

关于性能问题,如果您的 Chronometer 每秒滴答一次,这应该不会影响您应用的性能并且是完全可以接受的。

关于java - 如何在 Android 应用程序中保存天文钟耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25352888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com