当电池温度超过限制时通知用户
Posted
技术标签:
【中文标题】当电池温度超过限制时通知用户【英文标题】:Notify user when the battery temperature exceeds a limit 【发布时间】:2013-04-20 22:18:43 【问题描述】:我正在开发一个从用户那里获得最高温度的应用程序。它会持续监控电池的当前温度。一旦温度超过用户提供的最高温度,它应该通知用户。
我设计了布局,编写了逻辑来存储用户的温度,我知道我可以使用 EXTRA_TEMPERATURE 监控温度。但是,此应用程序应在后台运行。由于我必须始终监控温度,因此从逻辑上讲,服务应该始终运行。
在阅读论坛时,我知道这会大量消耗电池电量,并且大多数情况下可以在屏幕打开时运行服务。但是,我想知道是否可以在不耗尽电池的情况下在后台使用该服务。或者还有其他方法可以实现吗?
我的应用与此类似:Creating a temperature-sensing android app that runs in the background after activation
【问题讨论】:
你能分享你如何解决你的问题吗? 【参考方案1】:由于我必须始终监控温度,因此从逻辑上讲,服务应该始终运行。
伊克。
或者还有其他方法可以实现吗?
第 1 步:允许用户选择轮询周期(一分钟、五分钟、10 分钟等)。
第 2 步:设置 AlarmManager
计划以根据轮询周期获取控制权,将控制权路由到 BroadcastReceiver
。
步骤#3:在BroadcastReceiver
中的onReceive()
中,通过registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED))
获取最后广播的电池信息,挑出EXTRA_TEMPERATURE
,按照你当前的算法进行处理。如果要在此处完成的工作将超过几毫秒,请考虑将该工作委托给 IntentService
,它可以在后台线程上完成工作。
这样,您不需要一直将进程保存在内存中,并且用户可以选择他们想要监控温度的积极程度——监测越积极,电池成本就越高(讽刺的是,监测越多,电池温度越高)。
【讨论】:
非常感谢。我现在正在使用这种方式。会看看它是否有效。因为我没有 15 个代表,所以无法投票给答案。以上是关于当电池温度超过限制时通知用户的主要内容,如果未能解决你的问题,请参考以下文章