如何向特定appwidget广播意图?

Pet*_*rdk 2 android android-widget android-intent

我正在创建一个appwidget需要在特定时间间隔内更新的内容.我用AlarmManager它.

我想让闹钟运行中的onUpdate()方法AppWidgetProvider.

    //Create the intent
    Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
    pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);              

    //Schedule the alarm        
    AlarmManager manager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    manager.setRepeating(AlarmManager.RTC, startAlarmCal.getTime().getTime(), 1000 * 60, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

但是,此意图会导致所有窗口小部件更新.我想以某种方式只将这个意图发送到我自己的appwidget.我该怎么做?

lud*_*igm 6

使用自定义Intent发送到您的小部件.您可以在manifest.xml中注册它们.如果您有许多不同的窗口小部件ID,则无法更新特定窗口小部件ID.

<receiver
        android:name=".widget.WidgetProvider"
        android:label="1x1">
        <service
            android:name=".extra.WidgetProvider$WidgetUpdateService1x1" />
        <intent-filter>
            <action
                android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            <action
                android:name="nitro.blub.APPWIDGET_MANUEL_UPDATE" />
        </intent-filter>
        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_info" />

    </receiver>
Run Code Online (Sandbox Code Playgroud)