仅在重启时启动 Activity

Start Activity on Reboot Only

基本上我正在尝试制作一个 activity 包含一个按钮,该按钮可以重新启动设备并在重新启动后 returns 到相同的 activity。

我知道这个问题可能会与其他关于重启设备的问题混淆,但这不是这个问题的重点,因为我可以让设备正常重启。

我已经让按钮重新启动设备,但在完成重新启动后我可以让它启动 activity 的唯一方法是在清单中为 BOOT_COMPLETED 注册一个广播接收器。问题是每次设备启动时,这种方法都会启动 activity,这是不可取的。当我在按钮点击侦听器上注册接收器时,它不会在重启后启动 activity。

我想知道 BOOT_COMPLETED 中是否有额外的东西可以用来确定它是否有意重新启动。

任何建议将不胜感激,提前致谢!

只需保存一个与有意通过您的 activity 重新启动的设备相对应的整数。同样使用 SharedPreference。重新启动后,在您的 broadcast receiver 中检查该值是否已设置。如果已设置,请启动您的 activity,否则,请放手。

编辑

始终在重新启动完成并且您的 Activity 在前面时取消设置 此值。

您的 XML 应该存储在名为 AndroidManifest.xml 的文件中,而不是 manifest.java。

您的代码未被 运行 的另一个原因可能是您的应用程序安装在外部存储设备 (sdcard) 上。 BOOT_COMPLETE 在安装外部存储之前发送到应用程序。因此,如果应用程序安装到外部存储,它将不会收到 BOOT_COMPLETE 广播消息。

如果这不是问题,已经有关于如何让启动完成的接收器在 Android 上工作的非常好的描述。

Trying to start a service on boot on Android