*브로드캐스트
-관심있는 이벤트가 발생할 때 마다 전송
https://developer.android.com/guide/components/broadcasts?hl=ko
*서비스 클래스 내에서 브로드캐스트 리시버 사용
-브로드캐스트 리시버 생성(적용)
-(사용할 위치인 서비스 클래스 내에 생성함)
//브로드캐스트 리시버
private BroadcastReceiver apiBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("ACTION_INTERVAL_CHANGED")) {
// BroadCast에서 받아온 healthChkInterval 값
String newHealthCheck = intent.getStringExtra("newHealthCheck");
int healthChkInterval = Integer.parseInt(newHealthCheck);
// 현재 Timer가 실행중이라면, 취소 후 다시 시작
if (timer != null) {
timer.cancel();
startTimer(healthChkInterval);
}
}//"ACTION_INTERVAL_CHANGED"
}
};
//BroadCastReceiver 등록
private void registerApiBroadcastReceiver() {
IntentFilter filter = new IntentFilter();
filter.addAction("ACTION_INTERVAL_CHANGED");
registerReceiver(apiBroadcastReceiver, filter);
}
-registerApiBroadcastReceiver(); 는 onStartCommand에서 시작함
@Override
public void onDestroy() {
super.onDestroy();
stopTimer();
unregisterReceiver(apiBroadcastReceiver);
}
-unregisterReceiver(apiBroadcastReceiver); 하여 서비스가 종료될 때 같이 종료
*참고
Broadcast Receiver 등록하고 시스템 이벤트 받아서 처리하기
안드로이드의 시스템은 이벤트가 발생할 때,broadcast를 보내줍니다. 이름이 broadcast이니, 방송을 한다고 해야할까요.안드로이드 내부적으로 이벤트가 발생을 했다고 알려주는 것인데요, 안드로이
developer88.tistory.com
'+)기록 > 과제' 카테고리의 다른 글
정리사항 56 - ListPreference에서 선택한 값 가져오기 (0) | 2023.04.27 |
---|---|
정리사항 55 - 안드로이드 아키텍처 패턴 (0) | 2023.04.27 |
정리사항 53 - 서비스 및 타이머(매 정각을 기준으로 지정시간 마다 실행) (0) | 2023.04.25 |
정리사항(피드백) 52 - try-catch문 예외처리 (0) | 2023.04.24 |
정리사항(피드백) 51 - 스레드 동작 위치 확인 (0) | 2023.04.24 |