프로그래밍/Android

AlarmManger 사용

chance 2009. 11. 10. 18:23

스케줄과 관련한 내용~

쓰레드를 통해 구현가능하나 쓰레드는 아무래도 데드락에 대한 고민이 뒤따른다.

 

AlarmManager는 일정 간격으로 스케줄링을 하고 싶을때 사용하는 서비스이다.

서비스 이므로, 현재 객체나 해당 객체가 동작 중일 필요없이 항상 활성화 시킨다.

 

어플리케이션 종료나 비활성화시 해제해주지 않으면? ^^ 계속 뜬다!!!

 

BroadcastReceiver 에 관해서는 별도로 포스팅 한다~

 

 

 

설정하기

 

1. 명시적 인텐트 설정

Intent intent = new Intent( MyClass.this, AlarmService.class );

 

2. 브로드캐스트 송신자 설정

PendingIntent sender = PendingIntent.getBroadcast( MyClass.this, 0, intent, 0);

 

3. 시간설정

long firstTime=System.currentTimeMillis();

 

4. 서비스 객체 얻기

AlarmManager alarm = Context.getSystemService( Context.ALARM_SERVICE );

 

5. 알람등록(반복)

alarm.setRepeating( AlarmManager.RTC_WAKEUP,  firstTime, 10000, sender);

 

 

 

 

수신하기

1. BroadcastReceiver 를 상속한 객체 생성

public class AlarmReceiver extends BroadcastReceiver {

 

}

 

2. onReceive 오버라이딩

public void onReceive( Context context, Intent intent ) {

 

}

 

사용하기전 리시버 등록 잊지 말것!!!