簡體   English   中英

如何基於廣播消息更新小部件?

[英]How to update widget based on Broadcast message?

我從服務中收到一條廣播消息,它會更新其中一項活動中的信息,但我也希望它也更新我的窗口小部件。 我將如何處理?

假設系統中有一個動作為“ ACTION”的廣播,其中包含額外的“ TIME”。 如何使“ TIME”出現在小部件中? 我有一個由android studio制作的干凈類。

您只需要在廣播接收器的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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM