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() で受信できません。

<receiver>Merlin が示しているように、この新しいアクション文字列を反映するようにマニフェスト内の要素を調整していない可能性があります。

また、アプリのパッケージ名を の前に置くなど、一意である可能性が高いアクション文字列を使用してくださいupdate.action

于 2012-08-25T12:08:50.180 に答える