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

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 个代表,所以无法投票给答案。

以上是关于当电池温度超过限制时通知用户的主要内容,如果未能解决你的问题,请参考以下文章

轻轻邮箱超过用户的配额大小限制怎么解决

Android 用户通知中的注册 ID 限制

限制发送推送通知(防止垃圾邮件) - GCM

iPhone 推送通知声音的限制?

PHP 后内容长度超过限制

怎样限制MySQL数据库文件的大小?