2

我正在创建一个应用程序,当用户按下按钮时,它将在文件中保存当前时间(有一些延迟,例如 2 小时)。稍后,应用程序将检查时间是否已经过去并做一些事情......

所以...我单击应用程序中的按钮(时间保存在文件中)...我退出应用程序...关闭手机...我在 1 小时后打开它,返回应用程序...我会仍然需要等待 1 小时,直到应用程序让我做“某事”......

问题:

是否存在用户无法更改并在设备关闭时继续运行的时钟?我目前正在使用SystemClock.elapsedRealtime(),效果很好,因为即使用户更改设置中的时间,也elapsedRealtime保持不变。问题是设备是否被关闭,因为每次启动都elapsedRealtime以 0 开头。

我无法使用服务器时间,因为应用程序不会连接到 Internet。

如果没有这样的时钟,请建议我另一种解决方案。

4

3 回答 3

1

实际上,您没有机会“关闭”硬件时钟数据。硬件时钟只是在新手机中的旧手机上,我认为没有人需要它,所以他们不会在硬件中构建它。在旧手机中,有“硬件”时钟,但在新设备中,我认为与此完全不同。我确实读过一些关于谷歌想要制作一些框架或实现它的内容。但是没有警报可以在关闭模式下启动。

所以我很抱歉,但我认为现在不可能..

于 2012-09-14T02:10:22.073 回答
0

您可以将您的时间作为 DateTime 值存储在数据库中,表示年日月时秒毫秒,然后您可以请求服务在启动时启动并读取该数据,创建在剩余时间触发的警报。我会给你一个代码示例,但我不太擅长java编程,所以它可能没用,无论如何祝你好运并尝试实现它。

于 2012-09-14T03:07:03.803 回答
-1

您显然需要将数据保存到非易失性存储中。当您的应用程序被 Android 暂停/破坏时,您应该将其视为威胁并将您的时间值保存到磁盘中,然后当您的应用程序再次启动时,您的应用程序应该读取您之前写入的数据并继续运行它通常会。

好吧,当谈到如何提出问题时:

最简单的解决方案是使用SharedPreferences,

更复杂和更灵活的是 SQLite 数据库,

有关 Android 存储的更多数据,我建议:存储选项

于 2012-09-14T00:23:06.780 回答