안드로이드 개발 질문/답변
(글 수 45,052)
public class ShakeMorning extends Activity implements OnClickListener {
Calendar calendar = Calendar.getInstance();
TextView txtLabel;
TimePickerDialog.OnTimeSetListener timeSetListenr =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
setLabel();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button)findViewById(R.id.BTN_start)).setOnClickListener(this);
((Button)findViewById(R.id.BTN_stop)).setOnClickListener(this);
AnalogClock btnTime = (AnalogClock)findViewById(R.id.AnalogClock01);
btnTime.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
new TimePickerDialog(ShakeMorning.this,
timeSetListenr,
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
true).show();
}
});
txtLabel = (TextView)findViewById(R.id.txtTime);
setLabel();
}
private void setLabel() {
txtLabel.setText(DateFormat.getDateTimeInstance().format(calendar.getTime()));
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.BTN_start:
RepeatingAlarm_Start_Event();
finish();
break;
case R.id.BTN_stop:
RepeatingAlarm_Stop_Event();
break;
}
}
private void RepeatingAlarm_Start_Event() {
Intent intent = new Intent(ShakeMorning.this, RepeatingAlarm.class);
PendingIntent sender = PendingIntent.getBroadcast(ShakeMorning.this,
0, intent, 0);
// We want the alarm to go off 30 seconds from now.
long firstTime = SystemClock.elapsedRealtime();
firstTime += 15*1000;
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
firstTime, 15*1000, sender);
Toast.makeText(ShakeMorning.this, "알람 시작", Toast.LENGTH_LONG).show();
}
private void RepeatingAlarm_Stop_Event(){
Intent intent = new Intent(ShakeMorning.this, RepeatingAlarm.class);
PendingIntent sender = PendingIntent.getBroadcast(ShakeMorning.this,
0, intent, 0);
// And cancel the alarm.
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.cancel(sender);
Toast.makeText(ShakeMorning.this, "알람 취소", Toast.LENGTH_LONG).show();
}
}
일단 15초후에 처음울리고 계속 15초마다 실행되게 했습니다.
저렇게 말고 타임피커로 저장한 시간에 최초로 실행되게 하는방법 아시면 댓글좀 ㅠㅜ



