안드로이드 개발 질문/답변
(글 수 45,052)
제가 알람어플을 제작하고있는데 새내기라서..
package com.jang.Angryalarm1;
import java.util.Calendar; import java.util.GregorianCalendar;
import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.Toast; import android.widget.DatePicker.OnDateChangedListener; import android.widget.TimePicker; import android.widget.TimePicker.OnTimeChangedListener;
public class Angryalarm1Activity extends Activity implements OnDateChangedListener, OnTimeChangedListener { // 알람 메니저 private AlarmManager mManager;
// 설정 일시 private GregorianCalendar mCalendar;
//일자 설정 클래스 private DatePicker mDate;
//시작 설정 클래스 private TimePicker mTime;
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
//알람 매니저를 취득 mManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
//현재 시각을 취득 mCalendar = new GregorianCalendar(); Log.i("HelloAlarmActivity",mCalendar.getTime().toString());
//셋 버튼, 리셋버튼의 리스너를 등록 setContentView(R.layout.main); 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(); } });
//일시 설정 클래스로 현재 시각을 설정 mDate = (DatePicker)findViewById(R.id.date_picker); mDate.init ( mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH), mCalendar.get(Calendar.DAY_OF_MONTH), this); mTime = (TimePicker)findViewById(R.id.time_picker); mTime.setCurrentHour(mCalendar.get(Calendar.HOUR_OF_DAY)); mTime.setCurrentMinute(mCalendar.get(Calendar.MINUTE)); mTime.setOnTimeChangedListener(this); } //알람의 설정 private void setAlarm() { mManager.set(AlarmManager.RTC_WAKEUP, mCalendar.getTimeInMillis(), pendingIntent()); Log.i("Angryalarm1Activity", mCalendar.getTime().toString()); Toast.makeText(Angryalarm1Activity.this, "알람테스트", Toast.LENGTH_SHORT).show(); }
//알람의 해제 private void resetAlarm() { mManager.cancel(pendingIntent()); }
//알람의 설정 시각에 발생하는 인텐트 작성
private PendingIntent pendingIntent() { Intent i = new Intent(getApplicationContext(), end.class); PendingIntent pi = PendingIntent.getActivity(this, 0, i, 0); return pi; }
//일자 설정 클래스의 상태변화 리스너 public void onDateChanged (DatePicker view, int year, int monthOfYear, int dayOfMonth) { mCalendar.set (year, monthOfYear, dayOfMonth, mTime.getCurrentHour(), mTime.getCurrentMinute()); Log.i("HelloAlarmActivity", mCalendar.getTime().toString()); }
//시각 설정 클래스의 상태변화 리스너 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()); } }
timepicket 이것을 이용하여 시간 설정을하였을때
지정된시간에 end 이라는 xml화면이 실행되고 end라는 클래스가 구현되게 하고싶습니다
// 알람의설정 시각에 발생하는 인텐트 작성
이것을 수정을 하면될거같은데 도저히 수정을하고해도 원하는게 나오질않네요..
에러는없고 실행은되는데 그시간에 이벤트가발생을안합니다
이것만 5시간째입니다 ㅠㅠ이러다가잠못잘거같아여