'PendingIntent'는
Alarm이나 Notification에 intent를 등록하기 위해서 사용
PendingIntent를 이용해서는 activity, broadcast, service를 실행 시킬 수 있다.
따라서 getActivity, getBroadcast, getService 메소드로 생성할 수 있게 되어있다.
1. 실행시키고 싶은 정보가 담긴 Intent 작성
Intent intent = new Intent(this, ReceiverAlarm.class);
2. PendingIntent작성(4개의 parameter에 대해서)
PendingIntent pending;
pending = PendingIntent.getBroadcast(context, id 값, intent, flag);
1번째 param, context 정보
2번째 param, 여러개의 알람을 등록하기 위한 primary id 값 셋팅
3번째 param, 실행시키고 싶은 정보가 담긴intent
4번째 param, flag
flag의 종류는 param과 같이 4개가 존재
1번째, FLAG_ONE_SHOT : 한번만 사용하겠다 정의
2번째, FLAG_NO_CREATE : 현재 생성된 PendingIntent 정보 반환
3번째, FLAG_CANCEL_CURRENT : 이미 실행중이면 취소후에 새로 만듬
4번째, FLAG_UPDATE_CURRENT : 이미 실행중이면 extra Data만 교체
'AlarmManager'는 특정 시간에 작업을 수행하기 위해 사용
1. AlarmManager 생성
AlarmManager aManager;
aManager = (AlarmManager)context.getSystem(Context.ALARM_SERVICE);
2. 셋팅하기
한 번만 실행하고 싶은 경우
aManager.set(시간 기준, 동작할 시간, pending);
특정 시간 마다 반복하고 싶은 경우
aManager.setRepeating(시간 기준, 동작할 시간, 반복할 간격, pending);
시간 기준
AlarmManager.ELAPSED_REALTIME : 단말기가 부팅된 이후 경과된 시간을 기준
AlarmManager.ELAPSED_REALTIME_WAKEUP :
위와 동일+대기상태일 경우단말기 활성시켜서 작업을 수행
위 기준일 경우 동작할 시간에 SystemClock.elapsedRealtime()를 사용
AlarmManager.RTC : 실제 시간을 기준
AlarmManager.RTC_WAKEUP :
위와 동일+대기상태일 경우 단말기 활성시켜서 작업을 수행
위 기준일 경우 동작할 시간에 System.currentTimeMillis()를 사용
'개발 log (개발) > mobile' 카테고리의 다른 글
'커스텀달력' 구현을 위한 이론(Fragment) (0) | 2016.09.06 |
---|---|
'커스텀갤러리' 구현을 위한 이론(ExternalStorage, DrawingCache) (0) | 2016.09.03 |
'커스텀갤러리' 구현을 위한 이론(Media_DB정보) (0) | 2016.08.30 |
'알람기능' 구현을 위한 이론(MobileDB_SQLite 1편) (0) | 2016.08.20 |
'커스텀갤러리' 구현을 위한 컨텐트 프로바이더(ContentProvider) (0) | 2016.08.20 |