我的应用使用BroadcastReceiver和服务来执行后台更新。我创建了一个设置,用户可以切换以启用/禁用后台更新,这基本上启动/取消包含我的BroadcastReceiver的Intent的AlarmManager。
我在AndroidManifest中也有一个接收器设置,它使用BOOT_COMPLETED广播操作。我注意到如果我重新启动设备,即使我禁用了后台更新,后台更新也会再次启动。
我的问题是,我假设我需要在启动时检查某处,是否已检查后台更新设置。我会在BroacastReceiver或服务本身中执行此操作,还是有另一种方法可以阻止后台更新在启动时启动。
感谢。
答案 0 :(得分:1)
最佳答案是,当您不想要更新时,使用PackageManager
和setComponentEnabledSetting()
来禁用BOOT_COMPLETED
BroadcastReceiver
,并在您执行此操作时启用。这样,在不需要时,您的代码都不会在启动时运行,从而加快了用户的启动过程并减少了电量。