2

我想从服务更新小部件。所以我需要发送一个广播,它应该在 AppWidgetProvider 扩展的类中接收。我正在使用如下所示的代码。我无法在班级的 onReceive() 中收到它。

if(getAction.equals("update.action")) {
        System.out.println("My Action");
        /*RemoteViews views = new RemoteViews(context.getPackageName(),
                R.layout.mylayout);
        mAppWidgetManager.updateAppWidget(ids, views);*/
        Intent intent = new Intent("update.action", null);
        intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,receivedIntent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, 0));
        sendBroadcast(intent);
        //updateAppWidget();
    }
4

1 回答 1

3

我想从服务更新小部件。

伟大的!

所以我需要发送一个广播,它应该在 AppWidgetProvider 扩展的类中接收。

不,你没有。只需让您的服务更新应用小部件,使用AppWidgetManager.

我正在使用如下所示的代码。我无法在班级的 onReceive() 中收到它。

正如 Merlin 所指出的,您可能没有调整<receiver>清单中的元素以反映这个新的操作字符串。

另外,请使用更可能是唯一的操作字符串,例如将您的应用程序包名称放在update.action.

于 2012-08-25T12:08:50.180 回答