Android-作业调度器还是广播接收器?
在我的Android应用程序中,每当用户插入设备时,我都需要做一些工作。为此,我现在使用一个BroadcastReceiver,当用户插入设备时,它启动我的IntentService来完成工作,当设备被拔出时,它停止工作 现在我正在考虑使用Android 5.0+的JobScheduler,但我看到的是,有了JobScheduler,我必须在应用程序中通过调用Android-作业调度器还是广播接收器?,android,broadcastreceiver,android-jobscheduler,Android,Broadcastreceiver,Android Jobscheduler,在我的Android应用程序中,每当用户插入设备时,我都需要做一些工作。为此,我现在使用一个BroadcastReceiver,当用户插入设备时,它启动我的IntentService来完成工作,当设备被拔出时,它停止工作 现在我正在考虑使用Android 5.0+的JobScheduler,但我看到的是,有了JobScheduler,我必须在应用程序中通过调用 JobScheduler.schedule(JobInfo); 但这对我来说是个问题,因为我希望每次用户将设备连接到充电器时都能运行我
JobScheduler.schedule(JobInfo);
但这对我来说是个问题,因为我希望每次用户将设备连接到充电器时都能运行我的作业,即使用户不必打开我的应用程序
出于这个原因,我认为一种方法是在用户第一次打开应用程序时安排,然后总是强制重新安排,因为我不能信任每天打开我的应用程序的用户(由于我的应用程序的性质,这肯定不会发生)
那么,我应该坚持使用BroadcastReceiver还是使用Android 5.0+的JobScheduler
在使用JobScheduler的情况下,我应该只调度一次作业,然后始终返回true以强制重新调度吗
谢谢。作业计划程序在后台运行,并在重新启动时持续运行,因此您应该没事。作业计划程序在后台运行,并在重新启动时持续运行,因此您应该没事 那么,我应该坚持使用BroadcastReceiver还是使用Android 5.0+的JobScheduler 使用JobScheduler,这可以提高应用程序的性能,以及电池寿命等系统健康方面的性能。此外,JobScheduler通过设备重新启动保持不变,并支持批量调度,通过批量调度,android系统可以组合挂起的作业,从而减少电池使用。此外,您可以区分android版本,因此在棒棒糖和更高版本上使用JobScheduler,在旧版本上使用AlarmManager 在使用JobScheduler的情况下,我应该只调度一次作业,然后始终返回true以强制重新调度吗 现在,有两种方法可以做到这一点:
通过广播接收器收听电池更换状态:通过广播接收器收听电池更换状态: