매일 자정에 Android 위젯을 업데이트하는 방법 ?? 아래 솔루션은이 주제와 관련하여 스택 오버플로에서 다른 질문을 조사하여 형성됩니다. 위젯은 위젯이 자정에 매일 갱신됩니다 있도록 타이머와 알람을 설정해야합니다의 AppWidgetProvider자정에 Android 위젯 업데이트
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
schedule(context);
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
2) 예약 방법을 확장 활동에서 생성 될 때 호출되는
1) 일정 (컨텍스트). 그러나 이것은 작동하지 않습니다.
protected void schedule(Context context) {
final Intent i = new Intent(context, CalendarWidget.class);
service = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.AM_PM, Calendar.AM);
calendar.add(Calendar.DAY_OF_MONTH, 1);
AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
//This doesn't work
// alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), service);
//This doesn't work either.
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, service);
}
해결책이 작동하지 않습니다. 매일 자정에만 테스트 할 수 있기 때문에 테스트하기가 어렵습니다. 그러므로 현상금. 나는 그것이 작동하게 만든 최초의 사람에게 그것을 수여 할 것이다.
왜 AlarmManager를 두 번 설정 했습니까? 그 중 하나를 삭제하고 거기에 setRepeating 메소드를 보냅니다. – Opiatefuchs
둘 다 작동하지 않습니다. 나는 모두 시도했다 – coolcool1994
좋아, 정확히 작동하지 않는 무엇입니까? Shedule()은 결코 호출되지 않습니까? 또는 호출했는데 AlarmManager가 작동하지 않습니까? – Opiatefuchs