애플리케이션에 특정 이벤트(문자 메세지 도착이나 SD카드를 꽃았을 때)가 왔을때 사용자에게 그 사실을 인지시켜주어야 한다.
Notification은 화면 상단바에 표시되며, 해당 Notification을 확인하고 지우기 전까지는 계속 상단바 리스트에 남아있고 클릭하면 원하는 컴포넌트를 호출할 수 있다.
Notification을 사용하기 위해서는 크게 3가지를 구성해야 한다.
- TickerText(상태 표시줄에 표시되는 텍스트와 이미지)
- Notification List에 표시되는 항목
- Notification List에서 항목을 눌렀을 때 수행할 작업
Notification 객체 생성하기
Notification 객체를 생성하면서 상태 표시줄에 표시되는 문자 및 아이콘 이미지를 생성자로서 넣어준다.
Notification notification = new Notification (int icon , CharSequence tickerText , long when);
icon : 상태표시줄에 표시할 아이콘
tickerText : 상태 표시줄에 표시할 텍스트
when : notification을 표시할 시각
상태표시줄에 Notification 표시하기 - Deprecated
생성한 Notification을 상태표시줄에 표시하기 위해 setLatestEventInfo()메소드를 이용한다.
notification.setLatestEventInfo(Context context , CharSequence contentTitle ,
CharSequence contentText , PendingIntent contentIntent);
- context : 컴포넌트 / 애플리케이션 컨텍스트 객체
- contentTitle : NotificationList에 표시될 notification의 제목
- contentText : NotificationList에 표시될 notification의 내용
- contentIntent : 항목을 눌렀을 때 수행할 작업
나머지는 다 알 수 있는 내용이고, 알람을 눌렀을때 수행할 작업으로 다른 컴포넌트를 호출할 때 intent대신 pendingIntent를 사용한다. intent가 어떤 내용을 할지에 대한 내용만 담고 있다면, pendingIntent는 객체 초기화 과정에서 호출할 컴포넌트를 지정하게 된다. 예를 들어 액티비티를 호출하는 pendingIntent의 초기화 과정을 살펴보자.
PendingIntent intent = PendingIntent.getActivity(Context context , int requestCode , Intent intent , int flags);
- context : 컨텍스트 객체
- requestCode : 요청코드
- intent : 처리할 작업을 포함하는 인텐트 객체
- flags : 기타 액티비티 실행 옵션들
이제 notification을 띄울 준비가 끝났으면 NotificationManager를 통해 실제로 띄워보자.
NotificationManager nm = (NotificationManager)getSystemService(NOTIFICAION_SERVICE);
nm.notify(NOTIFICAION_ID , notification);
만들어진 Notification을 NotificationManager를 통해 넘겨주면, NotificationManager가 객체의 내용대로 표시해준다. 이 때 생성하면서 넘긴 NOTIFICAION_ID는
추후 이 noticitaion을 해제하는데 사용된다.
'프로그래밍 > Android' 카테고리의 다른 글
안드로이드 서비스 (1) (1) | 2019.02.18 |
---|---|
액티비티 재생성 (0) | 2019.02.16 |
안드로이드 액티비티 생명주기 (0) | 2019.02.16 |
dp/dip/sp/px 단위와 멀티해상도 (0) | 2018.12.07 |
안드로이드 Firebase Auth / Realtime Databsae (0) | 2018.12.06 |
안드로이드의 구조 - MVC , MVP , MVVM (0) | 2018.12.06 |