我刚刚开始学习 Android 开发,并编写了一个应用程序来显示电池状态的详细信息。 现在我想把整个东西放到小部件中 - 然后就有了问题: 我真的需要在后台使用更新服务来监听 ACTION_BATTERY_CHANGED 意图吗? 我最初的想法是只在 AndroidManifest.xml 文件的 intent-filter 标记中加入一行 - 但显然没有那么简单。 如果 UpdateService 是正确的方法,我会这样做 - 但我只想确保什么是适当的解决方案。
我刚刚开始学习 Android 开发,并编写了一个应用程序来显示电池状态的详细信息。 现在我想把整个东西放到小部件中 - 然后就有了问题: 我真的需要在后台使用更新服务来监听 ACTION_BATTERY_CHANGED 意图吗? 我最初的想法是只在 AndroidManifest.xml 文件的 intent-filter 标记中加入一行 - 但显然没有那么简单。 如果 UpdateService 是正确的方法,我会这样做 - 但我只想确保什么是适当的解决方案。
我建议您定期轮询电池状态,例如每30分钟。为此,您可以在AppWidgetProviderInfo
中指定一个值来设置updatePeriodMillis
。
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:updatePeriodMillis="1800000" />
通过重写您的AppWidgetProvider
的onUpdate
方法,更新您的小部件。
编辑:正如Martin所指出的那样,30分钟实际上是您可以通过这种方式接收更新的最短时间间隔。
信不信由你,以下代码是可行的:
cont.getApplicationContext().registerReceiver(rec, filter);