App Widget Article에서 샘플을 만들었는데, 여기서는 App 위젯 업데이트 서비스를 사용했습니다.BroadcastReceiver의 App App 위젯의 update() 메소드
이제 사용자 정의 간격 (런타임 간격)에서 App 위젯을 프로그래밍 방식으로 업데이트하려고합니다.
어떻게하면됩니까?
App Widget Article에서 샘플을 만들었는데, 여기서는 App 위젯 업데이트 서비스를 사용했습니다.BroadcastReceiver의 App App 위젯의 update() 메소드
이제 사용자 정의 간격 (런타임 간격)에서 App 위젯을 프로그래밍 방식으로 업데이트하려고합니다.
어떻게하면됩니까?
다음은 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
UPDATE 을 다음과 같이 새로운 의도 필터를 추가해야합니다.
그런 다음 정의 된 인 텐트 필터에서 수신 할 인 텐트를 만듭니다. 내 경우에는 public static final String MY_INTENT_ACTION = "org.android.testwidget.MY_APPWIDGET_UPDATE";
각 AppWidget 인스턴스에 대해 별도의 인 텐트를 작성하려면 인 텐트의 데이터 부분이 필요합니다 (각 인스턴스를 다른 시간에 업데이트하려고하기 때문에). 그런 다음 BR에 대한 보류 인 텐트를 만들고이 PI로 alarmManager를 만듭니다. setRepeating
메서드에서 AppWidget 인스턴스의 시작 시간과 간격을 정의합니다.
좀 더 설명해 주시겠습니까? –
답변을 업데이트했습니다. – Yury