答案 0 :(得分:3)
以下是如何为AppWidget设置创建更新事件的示例。您可以根据自己的需要对其进行自定义:
Intent intent = new Intent();
intent.setAction(ExampleAppWidgetProvider.MY_INTENT_ACTION);
Uri data = Uri.withAppendedPath (Uri.parse("wordwidget://wordwidget/widgetId/#"),
String.valueOf(mAppWidgetId));
intent.setData(data);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
ExampleAppWidgetConfigure.this, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis() + 10000, 10*1000, pendingIntent);
您还应该为您的BR制作一个额外的意图过滤器,它将通过操作名称接收意图:ExampleAppWidgetProvider.MY_INTENT_ACTION
<强>更新强> 对于您的广播接收器,您应该添加新的intent-filter,如下所示:
<intent-filter>
<action android:name="org.android.testwidget.MY_APPWIDGET_UPDATE" />
<data android:scheme="wordwidget" />
</intent-filter>
然后创建一个将由定义的intent-filter接收的Intent。就我而言,public static final String MY_INTENT_ACTION = "org.android.testwidget.MY_APPWIDGET_UPDATE";
需要Intent的数据部分为每个AppWidget实例创建单独的intent(因为我想在不同的时间更新每个实例)。之后,您将为BR创建待处理意图,并使用此PI创建alarmManager。在方法setRepeating
中,您可以定义AppWidget实例的开始时间和间隔。