2012-01-04 5 views

답변

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

UPDATE 을 다음과 같이 새로운 의도 필터를 추가해야합니다.

그런 다음 정의 된 인 텐트 필터에서 수신 할 인 텐트를 만듭니다. 내 경우에는 public static final String MY_INTENT_ACTION = "org.android.testwidget.MY_APPWIDGET_UPDATE"; 각 AppWidget 인스턴스에 대해 별도의 인 텐트를 작성하려면 인 텐트의 데이터 부분이 필요합니다 (각 인스턴스를 다른 시간에 업데이트하려고하기 때문에). 그런 다음 BR에 대한 보류 인 텐트를 만들고이 PI로 alarmManager를 만듭니다. setRepeating 메서드에서 AppWidget 인스턴스의 시작 시간과 간격을 정의합니다.

+0

좀 더 설명해 주시겠습니까? –

+0

답변을 업데이트했습니다. – Yury