마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

현재시간에서 timePicker시간 차 구하기

0 추천

모닝콜 어플을 만들고있습니다...

며칠째 이 문제로 헤매네요 ㅠㅠㅠ

 

        //10초 후 버튼 클릭 구현
        secBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Calendar calendar = Calendar.getInstance();
                // 현재시각 long으로 가져올 때
                long now = calendar.getTimeInMillis();

                Intent intent = new Intent(DialogActivity3.this, AlarmDialogActivity.class);
                intent.putExtra("리잉톤", ringtoneUri); //링톤Uri 값을 인텐트에 태워 보낸댜
                PendingIntent pIntent = PendingIntent.getActivity(DialogActivity3.this, 0, intent, 0);
 
                alarmManager.set(AlarmManager.RTC_WAKEUP, now + 10000, pIntent);
            }
        });

 

이런식으로 현재 시간보다 10초가 흐르면  alarmManager를 이용하여 다른 액티비티를 띄워서 알람이

울리게끔 만들었습니다.

 

 timePicker를 이용해서 이 타임피커로부터 시간을 뽑아내어 그 시간에 알람이 울리게 하고싶습니다.

방법을 생각하던 도중에 

Calendar calendar = Calendar.getInstance();
                // 현재시각 long으로 가져올 때
                long now = calendar.getTimeInMillis();

이렇게 현재시각을 가져온 후,  timePicker로부터 시간을 가져와서   두 시간 사이의 차를 구한 다음,

그 차이만큼 시간이 흐른 후에 alarmManager를 호출시키면 될 것 같았습니다.

 

         OKBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            TimePicker timePicker = (TimePicker)findViewById(R.id.timePicker);

                int hour = timePicker.getHour();
                int minute = timePicker.getMinute();

                Calendar qq = Calendar.getInstance();  //현재시간
                Calendar tt = Calendar.getInstance();
                tt.set(2016,7,26,hour,minute); 
                //테스트용으로 임의 날짜만 설정, 시간과 분은 타임 피커에서 가져옴                                               

                long diffSec = (tt.getTimeInMillis() - qq.getTimeInMillis());
               // 현재시간와 타임피커의 설정 시간의 차

                Intent intent = new Intent(DialogActivity4.this, AlarmDialogActivity.class);
                intent.putExtra("리잉톤", ringtoneUri); //링톤Uri 값을 인텐트에 태워 보낸댜
                PendingIntent pIntent = PendingIntent.getActivity(DialogActivity4.this, 0, intent, 0);

                alarmManager.set(AlarmManager.RTC_WAKEUP, qq.getTimeInMillis+diffSec, pIntent);

            }
        });

 위와 같은 방법으로 여러번 시도를 해봤는데 시간차 구하기가 오차도 계속 나고 여간 까다로운게

아니더라구요..

 

TimePicker에서 설정한 시간에 AlarmManager를 set시키고 싶습니다.

혹시 다른 방법이 있다면 도움의 손길 부탁드립니다ㅠㅠ

똑돌이 (530 포인트) 님이 2016년 8월 26일 질문

1개의 답변

0 추천
tt가 의도한 값으로 설정되었는지 logcat에 출력해보세요.
익명사용자 님이 2016년 8월 26일 답변
...