我正在创建一个应用程序,当用户按下按钮时,该应用程序将在文件中保存当前时间(有些延迟,例如2小时)。稍后,应用程序将检查时间是否过去并做一些事情......
所以...我在应用程序中单击按钮(时间保存在文件中)...我退出应用程序...关闭手机...我在1小时后打开它,返回应用程序...我仍然需要等待1个小时,直到应用程序让我做“某事”......
问题:
是否存在用户无法更改的时钟并且在设备关闭时保持运行?我目前正在使用SystemClock.elapsedRealtime()
,它工作正常,因为即使用户更改设置中的时间,elapsedRealtime
也保持不变。问题是设备是否关闭,因为每次启动时elapsedRealtime
都以0开始。
我无法使用服务器时间,因为应用程序无法连接到Internet。
如果没有这样的时钟,请建议我另一个解决方案。
答案 0 :(得分:1)
实际上,你没有机会获得“关闭”硬件时钟数据。硬件时钟只是在新手机的旧手机上,我认为没有人需要它,所以他们不用硬件构建它。在旧手机中有“硬件”时钟,但在新设备中并不像我想的那样。我确实读过一些关于google想要制作一些框架或者实现它的内容。但是没有警报可以在关闭模式下启动。
所以我很抱歉,但我认为现在不可能......
答案 1 :(得分:0)
您显然需要将数据保存到非易失性存储中。当您的应用被Android暂停/销毁时,您应该将其视为威胁并将时间值保存到磁盘,然后当您的应用再次启动时,您的应用应该读取您之前编写的数据并继续运行它通常会。
当谈到如何:
最简单的解决方案是使用SharedPreferences
,
SQLite数据库越复杂,越灵活,
有关Android存储空间的更多数据,我建议:Storage Options
答案 2 :(得分:0)
您可以将您的时间存储在数据库中作为DateTime值,指示Year Day Month Hour Second Millisecond,然后您可以请求服务在启动时启动并读取该数据,从而创建在剩余时间内触发的警报。我会给你一个代码示例,但我不是很擅长java编程,所以它可能没用,反正很好,并尝试实现它。