代码之家  ›  专栏  ›  技术社区  ›  Peterdk

如何向特定的AppWidget广播意图?

  •  2
  • Peterdk  · 技术社区  · 14 年前

    我正在创造一个 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);
    

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

    3 回复  |  直到 13 年前
        1
  •  6
  •   ludwigm    13 年前

    <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>
    
        2
  •  0
  •   John Raymund    13 年前

    // Change the text in the widget
    RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.main);
    ComponentName thisWidget = new ComponentName(context, [Calling_class].class);
    
    // Run update code here. e.g: //////////////
    updateViews.setTextViewText(R.id.text, now);
    ////////////////////////////////////////////
    
    appWidgetManager.updateAppWidget(thisWidget, updateViews);
    

        3
  •  -1
  •   hanspeide    14 年前