2011-05-14 5 views
0

사용자가 서비스에 게시했는지 확인하기 위해 사용자가 지정한 특정 시간에 알람을 발생 시키려고합니다. 그러나 Android는 의도를 실행하지 않습니다.안드로이드의 AlarmManager는 아무 것도 작동하지 않습니다.

의 AndroidManifest.xml :

public static void settingsChanged(){ 
    Context cntxt = DailyboothApplication.getInstance(); 
    String value = DailyboothShared.getPersonalSetting("noBoothNotify", "no"); 
    AlarmManager alm = (AlarmManager) cntxt.getSystemService(Context.ALARM_SERVICE); 

    Intent piI = new Intent(cntxt, AlarmReciever.class); 
    if(Build.VERSION.SDK_INT >= 5){ 
     SharedPreferences prefs = DailyboothShared.getPrefs(); 
     piI.putExtra("account", prefs.getString("current_account", null)); 
    } 
    PendingIntent pi = PendingIntent.getBroadcast(cntxt, 348347873, piI, PendingIntent.FLAG_UPDATE_CURRENT); 

    if(value.equals("no")){ 
     alm.cancel(pi); 
    } else{ 
     String[] values = value.split(":"); 
     Calendar cal = Calendar.getInstance(); 
     Log.d("s", value); 
     // cal.setTimeInMillis(System.currentTimeMillis()); 
     cal.clear(Calendar.HOUR_OF_DAY); 
     cal.clear(Calendar.SECOND); 
     cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(values[0])); 
     cal.set(Calendar.MINUTE, Integer.parseInt(values[1])); 
     cal.setTimeZone(TimeZone.getTimeZone("GMT")); 
     Log.d("s", "setting for " + cal.getTimeInMillis()); 
     Log.d("s", "HRD: " + cal.getTime().toGMTString()); 
     alm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 
       /*AlarmManager.INTERVAL_DAY,*/ pi); 
    } 
} 

당신은 내가 그냥 (따라서 주석 하나를 작업 얻으려고 볼 수 있듯이 : 알람을 설정

<receiver 
android:name="me.kennydude.dailybooth.NoBoothNotify.AlarmReciever" /> 
<service 
android:name="me.kennydude.dailybooth.NoBoothNotify.AlarmService"> 
</service> 

NoBoothNotify.java 기능 부분), 그러나 그것은 아직도 작동하지 않습니다.

아무도 도와 줄 수 있습니까?

감사합니다,

+1

어둠 속에서 그냥 쐈지 만 알람을 설정하면 UTC로 시간이 예상됩니다. 시간대가 UTC (GMT)가 아닌 경우 보상해야합니다. – Squonk

+0

좋아요, 코드를 변경 했으므로 이제는 UTC/GMT로 시간을 버리고 있습니다. 그러나 여전히 불을 내지 않습니다. –

답변

1

나는이 문제를 해결 한 것으로 보인다. 어떤 이유로 Android는 하위 클래스 인 경우 Alarm을 시작하지 않습니다.

발신지를 고치고 유지하려면 새 네임 스페이스로 옮겨서 작동 시켰습니다.

관련 문제