Android设备上是否有唯一的启动会话ID或计数?

mar*_*k_w 5 java android

我正在编写的应用程序需要知道,由于缺少更好的术语," 启动会话 "是否已更改,但它不需要实际启动,我希望尽可能不必使用该RECEIVE_BOOT_COMPLETED权限.

所以我想知道是否有任何设备范围的启动会话ID或计数我可以查询并存储在我的数据库中以便稍后检查.我知道我可以在启动后以毫秒为单位获得时间,但我认为在这种情况下这不会有用.

在此先感谢您的帮助.

Geo*_*ard 5

是的,在 API >= 24 上。您可以使用BOOT_COUNT全局设置变量。要阅读本文,请尝试这样的片段:

int boot_count = Settings.Global.getInt(getContext().getContentResolver(),
                                        Settings.Global.BOOT_COUNT);
Run Code Online (Sandbox Code Playgroud)

API 24 之前的版本,您将无法捕捉RECEIVE_BOOT_COMPLETED.


Flo*_*ker -3

为什么不在数据库中存储上次启动的(绝对)日期和时间?您可以使用启动后的时间轻松计算它,并且考虑到启动时间比一毫秒长得多,它应该相当准确。