当电池温度超过限制时通知用户

时间:2013-04-20 22:18:44

标签: android service notifications battery

我正在开发一个可以从用户那里获得最高温度的应用程序。它会持续监控电池的当前温度。一旦温度超过用户获得的最高温度,就应该通知用户。

我设计了布局,编写了逻辑来存储用户的温度,我知道我可以使用EXTRA_TEMPERATURE来监控温度。但是,此应用程序应在后台运行。由于我必须始终监控温度,因此逻辑上应始终运行服务。

在阅读论坛上,我知道这会耗费大量电池,并且大部分都可以在屏幕开启时运行服务。但是,我想知道是否可以在后台使用该服务而不会耗尽电池。或者还有其他方法可以达到这个目的吗?

我的应用与此类似:Creating a temperature-sensing Android app that runs in the background after activation

1 个答案:

答案 0 :(得分:1)

  

由于我必须始终监控温度,因此逻辑上应始终运行服务。

伊克。

  

或者还有其他方法可以达到这个目的吗?

步骤1:允许用户选择一个轮询周期(一分钟,五分钟,十分钟等)。

步骤2:设置AlarmManager时间表以根据该轮询时间获取控制权,将控制路由到BroadcastReceiver

步骤3:在onReceive()的{​​{1}}中,通过BroadcastReceiver获取最后一次广播的电池信息,选择registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)),然后根据您当前的信息进行处理算法。如果要在此完成的工作将超过几毫秒,请考虑将该工作委派给EXTRA_TEMPERATURE,这可以在后台线程上完成工作。

这样,您无需始终将进程保留在内存中,用户可以选择他们想要监控温度的程度 - 监控越积极,电池成本越高(具有讽刺意味) ,监控越多,电池温度越高。)