自首次启动以来的时间

2023-12-20

我正在开发一个 Android 应用程序,并遇到了确定系统首次启动时间的问题。我的意思是我需要测量多少从设备首次启动起已经过了时间.

我知道有关侦听 ACTION_BOOT_COMPLETED 并将任何内容保存在 SharedPreferences 中的解决方案,但我需要另一种解决方案,因为这个解决方案在某些情况下不起作用。也许有任何系统属性?

Use case(摘自讨论 https://chat.stackoverflow.com/rooms/102325/discussion-between-ankitagrawal-and-oneworld)

  1. 我从服务器收到的每个文件的文件名都包含时间戳 取自System.currentMillis()
  2. 我比较这些时间戳以确定最新的文件是哪个。
  3. 现在,用户将系统时间提前几个月更改。
  4. 我仍然能够确定用户更改系统时间后下载的最新文件。
  5. 现在,用户将时间更改回原始设置。
  6. 比较时间戳时,第 4 步下载的文件始终获胜。

解决此问题的灵丹妙药是从第一次启动(恢复出厂设置后)开始计算秒数的时间戳。就像SystemClock.elapsedRealtime()但每次启动后无需重置。不幸的是,到目前为止的答案告诉我们,这个灵丹妙药并不存在。

然而,许多答案显示了解决该问题的多种选择。 OneWorld123 评论了每个答案,看看这是否适合他的需求。


也许有任何系统属性?

不确定系统属性,但有SystemClock https://developer.android.com/reference/android/os/SystemClock.html提供 API 来获取系统正常运行时间的类:

SystemClock.uptimeMillis() https://developer.android.com/reference/android/os/SystemClock.html#uptimeMillis%28%29 which

返回自启动以来的毫秒数,不计算深度睡眠的时间.

您还可以使用SystemClock.elapsedRealtime() https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime%28%29 which

返回自启动以来的毫秒数,包括睡眠时间.

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自首次启动以来的时间 的相关文章

随机推荐

  • 如何从自定义按钮触发 Facebook Like 按钮?

    我创建了一个自定义的 Facebook Like 按钮 如何让我点击按钮时 会触发 Facebook 提供的点赞按钮 如下所示 根据脸书政策 https developers facebook com policy socialplugin
  • 设置变量时 jQuery .val() 不起作用

    如果我有这样的输入
  • HID 设备的 INF 文件 - 设置名称和图标

    我正在寻找为 HID 设备 具有自定义 VID PID 创建一个 inf 文件 我只想用我们的字符串替换我们设备的 HID 兼容设备 和 USB 输入设备 字符串 我知道这需要 Microsoft 签名 但是有一个很好的示例说明如何执行此操
  • 将 RSS feed 输出为 html?

    是否有任何免费的 php javascript 库可以帮助将 RSS feed 显示为 html 在我看来简单派 http simplepie org是最好的 RSS 解析器之一 这是一个例子 require once simplepie
  • 如果我将所有图像保留在drawable-hdpi 文件夹中会发生什么?

    我的所有图像都在drawable hdpi 文件夹中 我完成了所有屏幕尺寸的所有布局 但我忘记将图像放入drawable mdpi文件夹和drawable ldpi文件夹中 如果具有 mdpi 屏幕密度的手机要下载我的应用程序 它会只使用
  • 在不知道高度宽度的情况下用背景图像填充 SVG 路径

    我能够创建一个包含填充 SVG 路径的 SVG 图像 正如这个问题中已经提到的 使用背景图像填充 SVG 路径元素 https stackoverflow com questions 3796025 fill svg path elemen
  • 如何使用7z SDK压缩和解压文件

    根据这个链接如何使用 NET 创建 7 Zip 档案 https stackoverflow com questions 222030 how do i create 7 zip archives with net WOPR 告诉我们如何使
  • 为什么 :host 选择器只能在带有 platform.js 的 chrome 中工作?

    关于如何设计 Web 组件的样式有很多讨论 例如 http www html5rocks com en tutorials webcomponents shadowdom 201 http www html5rocks com en tut
  • 方案:何时使用 let、let* 和 letrec? [复制]

    这个问题在这里已经有答案了 let let 和 letrec 之间有什么区别 请给出详尽的解释和例子 你最好的选择是阅读R5RS 官方说明 http www schemers org Documents Standards R5RS HTM
  • 如何从app.config获取这个配置值?

    我的朋友有以下 app config 他想要获得的价值address 怎么做
  • 如何将 Ransack 搜索保存到数据库?

    我正在尝试将 Ransack 搜索保存到数据库中 我相信我应该能够存储params q 值 然后当我想调用搜索时将其附加到搜索 URL 我不知道如何保存params q 不过 值 Ransack 创建的 URL 是这样的 http site
  • 极限分片:每个用户一个 SQLite 数据库

    我正在开发一个介于电子邮件服务和社交网络之间的网络应用程序 我觉得它未来有潜力变得非常大 所以我担心可扩展性 我决定为每个活动用户创建一个单独的 SQLite 数据库 每个 分片 一个活动用户 而不是使用一个集中式 MySQL InnoDB
  • 如何使用log4j2删除旧日志

    仅供参考 我已经在网上搜索了很多文档 我使用的是storm 0 10 0 beta1 Storm中log4j2的配置文件是worker xml 现在 我尝试使用log4j2 我正在寻找删除旧日志的方法 但我找不到 部分配置如下
  • 在“for in”循环中访问迭代器

    根据我的理解 当运行如下代码时 for i in MyObject print i 我的对象 iter 函数运行 for 循环使用它返回的迭代器来运行循环 是否可以在循环中访问此迭代器对象 它是一个隐藏的局部变量 还是类似的东西 我想做以下
  • UITextView 加载时未滚动到顶部

    当我的文本未填充 UITextView 时 它会按预期滚动到顶部 当文本超出屏幕所能容纳的范围时 UITextView 会滚动到文本的中间 而不是顶部 以下是一些可能相关的详细信息 在 viewDidLoad 中在 UITextView 的
  • 在 Django 模板中显示反向多对多

    我正在为小型销售 CRM 应用程序创建警报 通知系统 我有一个 Lead Contact 模型 用于存储客户的姓名 地址等 以及一个 Contact Notifier 模型 用于跟踪首次联系客户的时间 最后一次联系以及我们何时进行下一步联系
  • Python Tkinter 根标题不起作用

    我似乎无法给我的窗口命名 他们都有标题 Tk 我相信我的代码是正确的 所以如果这是错误的 请纠正我 from Tkinter import root Tk root title Title root mainloop 标题仍然是Tk 我可以
  • 为什么VS代码中的这个问题匹配器不起作用?

    为什么我的 ProblemMatcher 不起作用 我对正则表达式非常确定 但它没有报告任何问题 即使标准输出上有一些问题 the matcher problemMatcher owner typescript fileLocation r
  • PAR::Packer 如何工作?

    我正在使用 PAR Packer 这个问题突然出现在我的脑海中 PAR Packer 在 Perl 中如何工作 真的吗compilePerl 脚本到 exe 就像 g 将 C 源代码编译到 exe 一样 还是像 Python 中的 py2e
  • 自首次启动以来的时间

    我正在开发一个 Android 应用程序 并遇到了确定系统首次启动时间的问题 我的意思是我需要测量多少从设备首次启动起已经过了时间 我知道有关侦听 ACTION BOOT COMPLETED 并将任何内容保存在 SharedPreferen