안드로이드 4.1(젤리빈)에서 다양한 형태의 알림(Notification)이 추가되었습니다.
뿐만 아니라, 이전의 약간은 '어중간했던' 알림 생성 및 공지 방법이 깔끔하게 보강되었습니다.
이번 포스트에서는 예제 프로젝트를 통해 젤리빈에서 추가된 알림을 띄워보도록 하겠습니다.
젤리빈에서 크게 3가지의 알림 스타일이 추가되었습니다.
추가로, 알림에 '액션'을 할당할 수 있어 기존에 '알림'을 눌러 동작을 실행해야 했던 것에서 벗어 나
다양한 작업을 사용자에게 쉽게 노출시킬 수 있게 되었습니다.
허니컴부터 알림 생성을 더욱 쉽게 할 수 있는 Notification.Builder 클래스가 추가되었으며,
젤리빈에서도 이 클래스를 사용하여 다양한 형태의 알림을 쉽게 생성할 수 있습니다.
Notification.Builder 클래스를 통해 알림의 여러 속성을 지정하고,
최종으로 build() 메서드를 호출하여 Notification 객체를 생성하는 구조로 되어있습니다.
마지막으로 이를 NotificationManager의 notify() 메서드를 사용하여 띄울 수 있습니다.
BigPictureStyle
알림에 큰 이미지가 들어간 알림 스타일입니다.
알림은 다음과 같이 표시됩니다.
젤리빈에서는 각 형태의 Notification을 쉽게 생성할 수 있도록 각 알림 스타일을 미리 제공하고 있습니다.
여기에서는 Notification.BigPictureStyle을 사용하면 됩니다. BigPictureStyle 알림을 생성하는 코드와
코드가 영향을 미치는 부분을 그림으로 표현하면 다음과 같습니다.
위에서 addAction()의 intent에는 버튼을 눌렀을 때 실행할 동작을 포함하는 PendingIntent를 대입하면 됩니다.
BigTextStyle
BigTextStyle은 알림에 긴 내용의 텍스트를 표시합니다.
단순히 짧은 내용의 알림이 아니라 문자메시지 내용, 이메일 본문 등 많은 내용을 보여줘야 하는 경우에 사용하면 유용합니다.
BigTextStyle 알림은 다음과 같이 표시됩니다.
BigTextStyle 알림을 생성하는 코드와, 각 코드와 알림 요소간의 관계를 그림으로 나타내면 다음과 같습니다.
InboxStyle
InboxStyle은 이름에서 유추할 수 있듯이 '받은편지함'과 같이 여러 항목을 표시해야 하는 알림에 적합합니다.
하나의 알림에 최대 5개 항목까지 표시할 수 있습니다. 알림이 표시되는 모습은 다음과 같습니다.
InboxStyle 알림을 생성하는 코드와 알림 요소와의 연결관계는 다음과 같습니다.
ProgressBar
젤리빈에서 추가된 것은 아니지만 (ICS에서 추가됨) 유용하게 사용할 수 있으리라 생각되어 하나 더 다뤄봅니다.
컨텐츠 다운로드/업로드 상태, 혹은 작업 상태를 알림으로 쉽게 표시할 수 있는 ProgressBar 형태입니다.
다음과 같이 알림에 ProgressBar가 들어가 있습니다.
Progress는 Notification.Builder의 setProgress() 메서드를 사용하여 설정할 수 있습니다.
setProgress()의 세번째 인자를 true로 하면 Indeterminate상태의 ProgressBar를 표시하도록 할 수 있습니다.
public Notification.Builder setProgress(int max, int progress, boolean indeterminate)
알림의 진행 정도를 설정합니다.
setProgress()를 사용하는 알림을 생성하는 코드와 알림간의 상관관계를 그림으로 표현하면 다음과 같습니다.
'유저 인터페이스 > 알림(Notification)' 카테고리의 다른 글
Notification을 정ㅋ벅ㅋ - NotificationBuilder 예제 만들어보기 (34) | 2010.01.19 |
---|---|
나를 주목하라! - Notification (2) | 2009.11.01 |