2014-10-12 1 views
1

사용자가 버튼을 클릭 한 후 특정 시간 (이 시점에서 일요일 12시 36 분)에 새로운 인 텐트를 시작하려고합니다. 모든 캘린더 클래스 자습서를 살펴 보았지만 잘못된 것을 찾지 못했습니다. 난 달력 함수없이 코드를 테스트하고 잘 작동합니다. 아래 코드 :특정 캘린더 설정 시간이되면 알람 관리자가 꺼지지 않습니다.

public void myClickHandler(View view){ 
    switch (view.getId()){ 
    case R.id.button_start: 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(System.currentTimeMillis()); 
     calendar.set(Calendar.DAY_OF_WEEK, 0); 
     calendar.set(Calendar.HOUR_OF_DAY, 0); 
     calendar.set(Calendar.MINUTE, 30); 
     calendar.set(Calendar.SECOND, 0); 
     calendar.set(Calendar.MILLISECOND, 0); 

     AlarmManager alrmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
     Intent intent = new Intent(this, MyBroadcastReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 
     alrmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
     break; 
    } 
} 

답변

0

요일을 잘못 설정하고 있습니다.

calendar.set(Calendar.DAY_OF_WEEK, 1); 

을 또는 더 나은 아직, 클래스 상수를 사용합니다 : Calendar.SUNDAY = 1, 그래서 다음과 같이 변경

calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); 
+0

WOW 감사합니다! 내가 본 예들은 날 번호를 정하는 데있어서 잘못되었다. – rainingdx

+0

예,'Calendar' 클래스 값이 이상합니다. 예 : 요일은 1 기준이지만 월은 0 기준입니다. 가능한 경우 클래스 상수를 사용하는 것이 좋습니다. –

+0

그건 그렇고, Calendar.getInstance()를 호출하면 현재 시간이 이미 설정된 인스턴스를 반환합니다. 그냥 참고하시기 바랍니다. –

관련 문제