我正在做一项将执行以下操作的服务:
启动时会启动一个新线程,首先在该线程中调度作业 间隔为“ Z”,它将发送存储在域中的所有RSSI
然后每'N'秒启动蓝牙扫描,持续'X'秒 并将找到的所有BLE标签存储在Realm DB中。停止和开始 扫描是通过 Handler 处理的。
但是我有一个问题是哪种方法最好:
使用 FOREGROUND服务,这将启动一个新线程,其中 我通过时间间隔安排工作来发送数据,然后 我开始扫描,并设置了一个延迟'X'秒的处理器, 延迟后停止扫描,然后在我停止扫描时设置 处理程序延迟'N'秒,因此在'N'秒后,他将 再次开始扫描。
也使用计划作业来执行扫描操作
实际上我正在使用FIRST选项,但是我想知道第二秒是否会消耗更少的电量,然后电池会工作更多,或者处理程序是否消耗大量电池。
在谷歌上搜索,我发现处理程序比 AlarmManager 更好,因为 AlarmManager 会一直消耗功率直到达到设定的时间,因此处理程序消耗的电量少于 AlarmManagers 。
但是关于处理程序和计划的作业?
我看到当我以前台身份启动服务时,我总是在屏幕上看到通知,因此我不知道是否在中使用 Handlers 前景服务将比计划作业消耗更多的电量。
请记住,我需要我的服务永不停止,并且必须在“ N”秒后开始扫描“ X”秒! 因此,我不确定是否可以在计划作业中获取它,如果可以,我不确定选项1是否优于2或选项2是否优于选项1。
非常感谢! 编码不错! :D