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());
}
이렇게 코드를 짰는데 자꾸 설정하자마자 바로 알람이 울리는데 어떻게 해야 지정한 시간에 알람을 울리게 할 수 있을까요??