Notification을 이용한 알림바 구현 1
깊게 파고들어가 보진 않아서
직접 알림바를 구현하는데 사용한 것들을 위주로
우선 가볍게 알림바에 띄우는 정도로만 정리해두고
차차 상세하게 기록하고자 한다.
알림바 구현방법에 대해 이것저것 검색해서 따라하다가
잘 안되는 경험을 했는데
이게 Oreo(오레오) 버전부터 구현 방식이 바뀌어서 생긴 현상이다.
(오레오 이전의 구현방식의 정리된 블로그가 많은 편이다.)
오레오 이상버전부터는 반드시 채널을 생성해 줘야한다.
(채널 생성 부분에서 VERSION을 체크하는데 저건 꼭 해줘야한다 어차피 안해주면 빨간줄이 뜬다.)
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
String NOTIFICATION_ID = "10001";
String NOTIFICATION_NAME = "동기화";
int IMPORTANCE = NotificationManager.IMPORTANCE_HIGH;
//채널 생성
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
channel = new NotificationChannel(NOTIFICATION_ID, NOTIFICATION_NAME, IMPORTANCE);
notificationManager.createNotificationChannel(channel);
}
위에서 생성하는 채널로 일단 구성하는것은 아래와 같이
해당 알림에 관하여 정보를 구성하는 것으로 생각해두면 편하다.
(맞는지는 모르겠지만 개인적인 생각)
저렇게 채널을 부분적으로 오레오 이상 버전에서 생성해 주었으면
나머지 구현방식은 기존의 방식과 동일하다
그저 채널필수여부만 바뀌었을 뿐이다.
NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this,NOTIFICATION_ID)
.setContentTitle("동기화 중입니다.") //타이틀 TEXT
.setContentText("잠시만 기다려주세요.") //세부내용 TEXT
.setSmallIcon (R.drawable.ic_sync_noti_small) //필수 (안해주면 에러)
;
notificationManager.notify(0, builder.build());
좀더 상세적으로 선언해줄수 있는게 많은데
이번 게시글로 정리할것은 기본적인것만 선언하여 알림바를 구현하는 정도로만 정리해놨다.
저정도로만 선언해주고 실행해주면
(버튼을 이용하여 구현해봤다.)
아래와같이 푸시알림이 뜨면서 상단 알림바에 표시가 된다.
이것으로 기본적인 구현 로직은 끝났고 상세한건 다음에
하나하나 정리해 기록하고자한다.
(기타 전체적으로 정리가 잘 되어있는 참고 블로그
https://itmir.tistory.com/457 (2014.01.29 작성) - 기본적인 기능은 비슷하므로 참고하기 좋음
https://shnoble.tistory.com/81 (2017.08.17 작성) - 기본적인 기능 다루고 있음
https://codechacha.com/ko/notifications-in-android/ (2019.07.27) - 최근 형식이 맞게 구현되어있음
https://developer.android.com/guide/topics/ui/notifiers/notifications?hl=ko - Android 공식 홈페이지 Notification 관련
)
댓글