如果我的应用需要在启动时进行某种初始化(例如注册广播接收器),则标准解决方案是BOOT_COMPLETED
广播。这是Android 8+仍将向清单声明的接收器提供的少数广播之一。因此,解决方案是创建一个BroadcastReceiver
,在清单中使用匹配BOOT_COMPLETED
的意图过滤器对其进行声明,并在此进行所有初始化。
缺点:第一次安装应用程序或更换软件包时,此代码将在下次重新启动后运行。如果应用崩溃,则初始化也会丢失—我可以通过将Application
子类化并在其onCreate()
方法中重新运行初始化内容来解决该问题,但是用户仍然需要重新启动该应用
应用程序是否有任何方法可以检测何时安装或崩溃?