我收到了来自我服务的广播消息,它在其中一个活动中更新了信息,但我希望它也能更新我的Widget。我该怎么办呢?
我们假设系统中有一个广播,其中有动作"动作"它包含额外的" TIME"。我如何制作" TIME"出现在小部件中?我有一个由android工作室制作的干净课程。
答案 0 :(得分:0)
您只需在广播接收器的 onReceive()中执行操作即可创建 RemoteView 并更新小部件:
public static final String ACTION = "ACTION";
public static final String TIME = "TIME";
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction() != null) {
if (intent.getAction().equals(ACTION)) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
int widgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, 0);
String time = intent.getStringExtra(TIME);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
views.setTextViewText(R.id.appwidget_text, time);
appWidgetManager.updateAppWidget(widgetId, views);
}
} else {
super.onReceive(context, intent);
}
}