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

알람 만드는것좀 도와주세요

0 추천

 

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    mp = MediaPlayer.create(this,R.raw.stretching);
    mNotification = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    mManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    mCalendar = new GregorianCalendar();
    Log.i("HelloAlarmActivity",mCalendar.getTime().toString());
    setContentView(R.layout.activity_alarm);

    Button b = (Button)findViewById(R.id.set);
    b.setOnClickListener (new View.OnClickListener() {
        public void onClick (View v) {
            setAlarm();
        }
    });

    b = (Button)findViewById(R.id.reset);
    b.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            resetAlarm();
        }
    });

    Button b2 = (Button)findViewById(R.id.set2);
    b2.setOnClickListener (new View.OnClickListener() {
        public void onClick (View v) {
            setAlarm();
        }
    });

    b2 = (Button)findViewById(R.id.reset2);
    b2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            resetAlarm();
        }
    });

    Button b3 = (Button)findViewById(R.id.set3);
    b3.setOnClickListener (new View.OnClickListener() {
        public void onClick (View v) {
            setAlarm();
        }
    });

    b3 = (Button)findViewById(R.id.reset3);
    b3.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            resetAlarm();
        }
    });

    //일시 설정 클래스로 현재 시각을 설정
    mTime = (TimePicker)findViewById(R.id.time_picker);
    mTime = (TimePicker)findViewById(R.id.time_picker2);
    mTime = (TimePicker)findViewById(R.id.time_picker2);
    mTime.setCurrentHour(mCalendar.get(Calendar.HOUR_OF_DAY));
    mTime.setCurrentMinute(mCalendar.get(Calendar.MINUTE));
    mTime.setOnTimeChangedListener(this);
}

//알람의 설정
private void setAlarm() {

    mManager.setExact(AlarmManager.RTC_WAKEUP, mCalendar.getTimeInMillis(), pendingIntent());
    Log.i("HelloAlarmActivity", mCalendar.getTime().toString());
}

//알람의 해제
private void resetAlarm() {
    mManager.cancel(pendingIntent());
    mp.pause();
}

//알람의 설정 시각에 발생하는 인텐트 작성
private PendingIntent pendingIntent() {
    mp.seekTo(0);
    mp.start();
    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
        int count = 0; // initialize somewhere before,
        // not sure if this will work here
        int maxCount = 29;
        @Override
        public void onCompletion(MediaPlayer mediaPlayer) {
            if(count < maxCount) {
                count++;
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                mp.seekTo(0);
                mp.start();
            }            }});
    return null;
}

//시각 설정 클래스의 상태변화 리스너
public void onTimeChanged (TimePicker view, int hourOfDay, int minute) {
    mCalendar.set (mDate.getYear(), mDate.getMonth(), mDate.getDayOfMonth(), hourOfDay, minute);
    Log.i("HelloAlarmActivity",mCalendar.getTime().toString());
}

이렇게 코드를 짰는데 자꾸 설정하자마자 바로 알람이 울리는데 어떻게 해야 지정한 시간에 알람을 울리게 할 수 있을까요??

익명사용자 님이 2018년 2월 26일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...