2012-12-15 2 views
0

위젯을 만들려고합니다. 업데이트 빈도는 사용자가 정의하고 런타임에 변경할 수 있습니다. 내가 알람 관리자를 사용하여 할 수있는, 그러나, 거기에 한 번 알람의 간격을 변경하는 방법은 무엇입니까?Android - 위젯이 이미 홈 화면에 있습니까? 경보가 울리고 있습니까?

아니요, 아직 취소하고 새 간격으로 다시 시작할 수 있습니다. 그러나 위젯이 홈 화면에 추가되지 않았기 때문에이 기능이 어떻게 작동하는지 모릅니다. 따라서 질문은 입니다. 알람이 실행되고 있는지 확인하려면 이상, 위젯이 홈 화면에 있습니까?

감사

// EDIT 방법 위젯은 설정하면 알람의 간격을 변경하는 방법이

private boolean widgetExists() { 
    ComponentName myWidget = new ComponentName(this, MyWidgetProvider.class); 
    int[] ids = AppWidgetManager.getInstance(this).getAppWidgetIds(myWidget); 
    return ids.length > 0; 
} 

답변

1

존재하는지 확인하는 방법?

이 일을 위해, 우리는 AlarmManager.setRepeating()의 문서를 참조 할 수 있습니다

일정을 반복 알람 ... 이미 같은 IntentSender 예정 경보가있는 경우가 처음이 취소됩니다.

즉, 동일한 유형의 알람을 설정하면 기존 간격이 취소되고 새 값으로 알람이 재설정됩니다.


알람이 더 나은 실행 중이거나 경우 알 수있는 방법이 위젯이 홈 화면에,있다?

이 작업은 AppWidgetProvider입니다. 제공자의 콜백 (onEnabled, onUpdate 등)을 사용하여 위젯이 실제로 활성화되어 있는지 여부를 확인할 수 있습니다 (AppWidgetProvider docs).

+0

+ 고마워, 고마워, 멋지다, 나는 두 개의 알람이 울릴 것이라고 생각했다. + 위젯 .. 나는 아직도 활동에서 결정할 수있는 방법을 얻지 못한다. 홈 화면에 위젯이있다. 예를 들어 onUpdate에서 매개 변수로 얻는 ID를 얻기 위해 뭔가를 쿼리 할 수 ​​있을까? – urSus

+0

활성화 된 콜백/비활성화 된 콜백은 모든 위젯 ar이 추가되거나 제거 될 때 통보받을 곳입니다. 이 데이터를 앱의 다른 부분에 제공하는 한, 공급자는이 상태를 유지해야만 메모리에서 또는 SharedPreferences와 같은 다른 곳에서 유지되는 앱의 다른 구성 요소 (이 것은 사용자를 위해 수행되지는 않음)에서 쿼리 할 수 ​​있습니다. – Devunwired

+0

예, 계획 B였습니다. 더 쉬운 방법이 있는지 궁금해했습니다. 감사합니다. – urSus

관련 문제