我刚刚开始使用android开发并编写了一个应用程序来显示有关电池状态的详细信息。 现在我想把整个东西放到一个小部件 - 这里是问题: 我真的需要在后台更新服务来侦听ACTION_BATTERY_CHANGED意图吗?我的第一个想法是在AndroidManifest.xml中将一行 行插入到widget的intet-filter标签中 - 但显然并不那么简单。 如果UpdateService是我会做正确的方式,使 - 但我只是想妥善解决是知道什么在条件下更新android小部件
回答
我真的需要在 后台更新服务来侦听 ACTION_BATTERY_CHANGED意图?
对于ACTION_BATTERY_CHANGED
,您不能使用清单注册BroadcastReceiver
。它只能通过registerReceiver()
的活动或服务注册。
如果因为其他原因没有在内存中存储服务,更好的方法是轮询。设置一个AlarmManager
以便经常检查电池电量(请配置好!)。要检查电池电量,请致电registerReceiver()
以获取ACTION_BATTERY_CHANGED
IntentFilter
而不需要BroadcastReceiver
(第一个参数为null
)。这将返回最后广播ACTION_BATTERY_CHANGED
Intent
,您可以从中获得最新的收费级别。
我建议你定期轮询电池状态,例如,每30分钟一次。要做到这一点,你可以简单地在你AppWidgetProviderInfo
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:updatePeriodMillis="1800000" />
指定updatePeriodMillis
值..和通过重写你的AppWidgetProvider
的onUpdate
方法更新你的widget。
编辑:正如Martin指出的那样,30分钟实际上是您可以通过这种方式接收更新的最短时间间隔。
感谢您的支持 - 但是这会限制在至少30分钟内,因为这是updatePeriodMillis的最小值,不是吗? – DonGru 2010-08-10 10:01:50
你是对的!这很有趣,因为这个限制并不总是存在(http://android.git.kernel.org/?p=platform/frameworks/base.git;a=commit;h=851da848e97d9a1ec23a89ff0e200c301f32d690) – 2010-08-10 15:01:43
我重新介绍了它的介绍因为程序员使用它来进行频繁的更新(就像时钟部件的每一秒钟一样) - 这对电池寿命来说可能不是一件好事 – DonGru 2010-08-11 08:01:12
信不信由你,下面的工作:
cont.getApplicationContext().registerReceiver(rec, filter);
简直不敢相信......但它起作用!有什么收获? – KalEl 2012-01-04 17:09:58
- 1. c2dm更新Android小部件
- 2. Android - 通过小部件配置活动更新小部件
- 3. Android滑动条小部件?
- 4. 频繁Android小部件更新
- 5. Android小部件没有更新
- 6. Android小部件更新现有视图
- 7. Android电池小部件更新有时
- 8. 无法从BroadcastReceiver更新android小部件
- 9. Android主屏幕小部件未更新
- 10. Android中的更新小部件
- 11. Android应用小部件更新问题
- 12. android小部件更新问题
- 13. 更新小部件中的ImageVIew Android
- 14. 强制Android小部件更新
- 15. Android小部件刷新
- 16. android小部件在几个小时后停止更新代码?
- 17. setTextViewText不更新小部件
- 18. pyqtgraph小部件不更新
- 19. 小部件没有更新?
- 20. Qt - 小部件 - 更新
- 21. 当天更新的更新小部件
- 22. 只更新更新方法中的当前Android小部件ID
- 23. Android更新两个小部件的服务和AsyncTask只更新最新的小部件
- 24. Android:更新自定义图像作为数字的小部件的小部件
- 25. 在jquery mobile中更新小部件
- 26. TextView小部件在android2.2上不更新
- 27. Android - 正确引用和更新小部件和控件
- 28. 在没有竞争条件的条件下更新Django
- 29. 如何使用小部件ID更新小部件?
- 30. 第一个小部件更新第二个小部件
这听起来像什么,我一直在寻找 - 感谢很多 – DonGru 2010-08-10 10:05:11
什么问题清单是什么?为什么它不起作用? – 2011-05-26 22:24:25