【发布时间】:2017-08-25 20:58:54
【问题描述】:
我的应用程序中有小部件属性。我在小部件上显示来自位置的数据,但在 3 4 小时后不显示布局上的当前数据。我可以毫无问题地将它添加到主页,但它会在 3 或 4 小时后停止。此外,在我关闭和打开手机后,小部件布局看起来是空的。如何为小部件提供服务?
【问题讨论】:
标签: android service widget broadcastreceiver appwidgetprovider
我的应用程序中有小部件属性。我在小部件上显示来自位置的数据,但在 3 4 小时后不显示布局上的当前数据。我可以毫无问题地将它添加到主页,但它会在 3 或 4 小时后停止。此外,在我关闭和打开手机后,小部件布局看起来是空的。如何为小部件提供服务?
【问题讨论】:
标签: android service widget broadcastreceiver appwidgetprovider
只需在 IntentService 中创建更新 appwidget 的逻辑(您可以使用 AlarmManager 或 JobScheduler 进行调度)并在 appwidget-provider 中设置 android:updatePeriodMillis="0"。从服务更新应用小部件:
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
RemoteViews views = makeRemoteViewForWidget();
appWidgetManager.updateAppWidget(widgetId, views); //update only one widget
//Or update all widgets
for (int widgetId : ids) {
appWidgetManager.updateAppWidget(widgetId, views);
}
【讨论】: