본문

160210P(수)

Android Chapter 29 - BR


통지(notification)

토스트는 중요한 전달 사항에 는 적합하지 못하므로 통지(notification)이 필요하게 되었다.


이전버전에서는 Notification() 을 객체로 선언하고 setLatestEventInfo 메소드로 선택시의 동작을 정의했으나,

3.0 이후에는 Builder를 통해서 통지객체를 생성하는 형식으로 변경되었다.


Notification.Bulder(Context context)


setTicker

RemoteViews views를 통해서 더 복잡한 정보도 출력 가능


setWhen

System.currentTimeMillis


setSmallIcon

setLargeIcon


setContentTitle

setContentText

setSubText

setContentIntent(PendingIntent intent)

PendingIntent는 Intent를 래핑한다.

다른 응용프로그램으로 전달하여 실행권한을 준다는 점에서 보통의 인텐트와 다르다.

시스템이 관리하며 인텐트를 만든 프로그램이 종료되어도 유효

생성자가 없어서 객체를 직접생성 불가하고 다음의 정적 메소드중 하나로 생성

getActivity

getBreadcast

getService


setLights

setNumber

setOngoing

작업이 진행중임을 나타낸다.

코드에서 작업 완료시 제거 가능

ex) 음악 재생


setSound

setVibrate


builder의 모든 메소드는 builder자신을 리턴하므로 연쇄적인 호출이 가능하다.


통지 관리자

NotificationManager mNotification = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);


notify

cancel


통지에 대한 id가 첫번째 인수로 들어간다.

여러개의 통지에 대한 구분


커스텀 통지 뷰

XML에 레이아웃을 작성하며, 통상적인 뷰가 아니라 프로세스의 경계를 넘어서 출력할 수 있는 RemoteViews 클래스의 객체로 생성해야 한다.


RemoteViews

진짜 뷰가 아니라 다른 프로세스에서 뷰를 생성하기 위해 뷰의 모양을 정의하는 객체


setImageViewResource

setTextViewText


동적으로 이미지와 텍스트 대입


Builder.setContent(RemoteViews views)


BR(Broadcast Receiver)

시스템은 사소한 변화가 있을 때마다 어떤 변화가 있었는지 신호를 보낸다.


방송을 청취하려는 응용프로그램은 BR을 작성해두고 관심있는 방송을 대기한다.

BR은 오로지 방송 수신만 대기하며 사용자와 직접적인 대면은 없다.


BroadcastReceiver 클래스로부터 extends

onReceive 재정의

10초내로 응답이 없으면 ANR 발생!

최대한 빨리 리턴해야 한다.

onReceive가 리턴되면 BR의 생명도 끝이다.


대화상자 대신에 통지를 사용해서 사용자에게 전달해야 한다.


다른 응용프로그램에게도 방송을 보낼 수 있기 때문에 BR은 App간의 통신 수단으로도 활용

sendBroadcast

sendOrderedBroadcast



'Mobile > Android' 카테고리의 다른 글

160321A(월)  (0) 2016.03.21
160319A(토)  (0) 2016.03.19
160302P(수)  (0) 2016.03.03
160119P(화)  (0) 2016.01.19
160118P(월)  (0) 2016.01.18

공유

댓글