2012-05-15 2 views
2

위젯 업데이트 트랜잭션에 AlarmManager을 사용하고 있습니다. 나는 Android : AlarmManager not long interval values ​​

방법 AlarmManager를 호출하는 등 5, 10, 15 30 분 같은 다른 간격 값을했습니다 : 사용자가 5 또는 10 분을 선택하면

alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
Intent i = new Intent(context, MyService.class); 
pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);   

// Interval value, default 600 (600*1000 -> 10 min) 
Long repeat = Long.parseLong(prefs.getString("update_preference", "600")); 

// Set the manager 
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 1000*repeat, pi); 

그래서, 그것은 괜찮습니다. 그러나 그렇지 않다면, 사용자가 setRepetaing처럼 빨리 작동하지 않는 MyService과 같이 더 큰 값 (15, 30, 60 분)을 선택합니다.

무엇이 다른가요?

편집 : 즉시 작동합니다. <은 30 분이지만, 이제는 고유 한 요청 코드로 30 분 이상 작동합니다.

답변

2

나는 당신이 "0"고유 ID를위한 최선의 선택이 아니다, 일할 수있는 Mulitple Instances of Pending Intent

+0

http://www.androiddiscuss.com/1-android-discuss/9703.html –

+1

http://stackoverflow.com/questions/3168484/pendingintent-works-correctly-for-the-first-notification-but -increrectly-for-the –

+0

시도한 고유 요청 코드 및 여전히 동일한 문제가 있습니다. 수정 된 질문. –

2
pi = PendingIntent.getService(context, 12345, i, PendingIntent.FLAG_UPDATE_CURRENT); 

PendingIntent

독특한 요청 코드를 사용하는 것 같아요.

+0

0이 좋지 않을 수 있습니다. 그러나 5 분 10 분 동안 작동합니다. 시도해 볼게. 고맙습니다. –

+0

변경된 사항은 없으며 30 분과 60 분 동안 계속 작동하지 않습니다. Btw에는 차이 값 유형이 없습니다. –