1

我们如何在 AppWidgetProvider 的 onReceive 方法上更新主屏幕小部件的视图?

我正在尝试更新我的主屏幕小部件的 TextView,但似乎我无法在 onReceive 方法上访问我的 AppWidgetProvider 的 TextView。

这是我的 onReceive 的示例代码

public void onReceive(Context context,Intent intent) {
    final String action = intent.getAction();
    if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) {
        final int appWidgetId = intent.getExtras().getInt(
        AppWidgetManager.EXTRA_APPWIDGET_ID,
        AppWidgetManager.INVALID_APPWIDGET_ID);
        if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
            this.onDeleted(context, new int[] { appWidgetId });
        }
    } else {
        if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) {
            String msg = "null";
            try {
                msg = intent.getStringExtra("msg");
            } catch (NullPointerException e) {

            }


            Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
            // code for gathering the text to update the TextView


            }

    }
        super.onReceive(context, intent);
}
4

1 回答 1

2

您无法更新 TextView。您只能构建完整的新小部件布局 (RemoteViews) 并将其发布到主屏幕。

于 2010-06-11T13:17:27.007 回答