Notification 과 NotificationManager 상세 소개

안 드 로 이 드 시스템 에 서 는 상태 표시 줄 알림 을 보 내 는 것 이 편리 합 니 다.상태 표시 줄 알림 을 어떻게 보 내 는 지,상태 표시 줄 알림 은 어떤 매개 변 수 를 설정 할 수 있 는 지 살 펴 보 겠 습 니 다.우선,상태 표시 줄 알림 을 보 내 려 면 두 가지 종류 가 필요 합 니 다.NotificationManager,Notification.NotificationManager:상태 표시 줄 알림 의 관리 클래스 로 알림,알림 등 을 보 냅 니 다.NotificationManager 는 시스템 Service 로 getSystemService()방법 을 통 해 가 져 와 야 합 니 다.NotificationManagernm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE); Notification:구체 적 인 상태 표시 줄 알림 대상 으로 icon,문자,알림 소리,진동 등 인 자 를 설정 할 수 있 습 니 다.다음은 알림 에 필요 한 기본 매개 변 수 를 설정 합 니 다.Anicon(알림 아이콘)Atitleandexpandmessage(알림 의 제목 과 내용)APendingIntent(알림 실행 페이지 전환 클릭)1.Notification 을 만 들 고 NotificationManager 의 notify(int,Notification)방법 으로 Notification 을 시작 합 니 다.첫 번 째 매개 변 수 는 이 Notification 을 표시 하고 두 번 째 매개 변 수 는 Notification 대상 입 니 다.2.Notification 을 업데이트 하고 Notification 의 setLatest EventInfo 방법 으로 내용 을 업데이트 한 다음 에 NotificationManager 의 notify()방법 을 호출 하면 됩 니 다.(구체 적 으로 아래 의 인 스 턴 스 를 볼 수 있 습 니 다)3.Notification 삭 제 는 NotificationManager 의 cancel(int)방법 을 통 해 알림 을 삭제 합 니 다.그 중에서 매개 변 수 는 Notification 의 유일한 표지 ID 입 니 다.물론 cancelAll()을 통 해 상태 표시 줄 의 모든 알림 을 지 울 수 있 습 니 다.4.Notification 설정(진동,벨 소리 등)1.기본 설정:
 
//
baseNF=newNotification();
//
baseNF.icon=R.drawable.icon;
//
baseNF.tickerText="YouclickedBaseNF!";
// DEFAULT_SOUND,DEFAULT_VIBRATE,DEFAULT_LIGHTS.
// , DEFAULT_ALL.
//
baseNF.defaults=Notification.DEFAULT_SOUND;
// : expandedmessagetitle
// : expandedmessagetext
// :
baseNF.setLatestEventInfo(Lesson_10.this,"Title01","Content01",pd);
//
//ThefirstparameteristheuniqueIDfortheNotification
//andthesecondistheNotificationobject.
nm.notify(Notification_ID_BASE,baseNF);
2.소 리 를 추가 할 때 기본 소 리 를 사용 하려 면 default 만 사용 하면 됩 니 다.
 
baseNF.defaults=Notification.DEFAULT_SOUND;
사용자 정의 소 리 를 사용 하려 면 sound 를 사용 해 야 합 니 다.다음 과 같 습 니 다.
 
notification.sound=Uri.parse("file:///sdcard/notification/ringer.mp3");
위의 방법 은 자신의 벨 소 리 를 사용 합 니 다.시스템 자체 의 벨 소 리 를 사용 하려 면 이렇게 할 수 있 습 니 다.
 
notification.sound=Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI,"6");
주의해 야 합 니 다.default,sound 가 동시에 나타 나 면 sound 가 잘못 되 고 기본 벨 소 리 를 사용 합 니 다.기본적으로 알림 소 리 는 한 번 재생 하면 끝 납 니 다.소 리 를 반복 재생 하려 면 flags 인자 에 FLAG 를 추가 해 야 합 니 다.INSISTENT。이렇게 하면 소리 가 사용자 응답 이 되 어야 끝 납 니 다.예 를 들 어 드 롭 다운 상태 표시 줄 입 니 다.
 
notification.flags|=notification.FLAG_INSISTENT;
3.진동 을 추가 합 니 다.기본 진동 방식 을 사용 하면 default 을 사용 합 니 다.
 
notification.defaults|=Notification.DEFAULT_VIBRATE;
물론 진동 형식 도 스스로 정의 할 수 있 고 여 기 는 Long 형 배열 을 사용 해 야 한다.
 
long[]vibrate={0,100,200,300};
notification.vibrate=vibrate;
이쪽 의 Long 형 배열 에서 첫 번 째 매개 변 수 는 진동 을 시작 하기 전에 기다 리 는 시간 이 고 두 번 째 매개 변 수 는 첫 번 째 진동 시간 이 며 세 번 째 매개 변 수 는 두 번 째 진동 시간 이다.이런 식 으로 유추 하여 얼마나 긴 배열 을 마음대로 정의 한다.그러나 이런 방법 으로 는 중복 진동 을 할 수 없다.마찬가지 로 default,vibrate 가 동시에 나타 날 때 기본 형식 을 사용 합 니 다.또한 주의해 야 할 점 은 진동 기 를 사용 할 때 권한 이 필요 합 니 다.다음 과 같 습 니 다.
 
<uses-permissionandroid:name="android.permission.VIBRATE"></uses-permission>
4.플래시 는 기본 조명 을 사용 합 니 다.다음 과 같 습 니 다.
 
notification.defaults|=Notification.DEFAULT_LIGHTS;
사용자 정의:
 
notification.ledARGB=0xff00ff00;
notification.ledOnMS=300;
notification.ledOffMS=1000;
notification.flags|=Notification.FLAG_SHOW_LIGHTS;
그 중에서 ledARGB 는 조명 색상,ledOnMS 밝 은 지속 시간,led OffMS 어두 운 시간 을 표시 합 니 다.주의:이쪽 의 색깔 은 설비 와 관련 이 있어 서 모든 색깔 이 다 되 는 것 이 아니 라 구체 적 인 설 비 를 보아 야 합 니 다.5.기타 유용 한 설정:
 
flags:
Notification.FLAG_INSISTENT;// 、 ,
Notification.FLAG_AUTO_CANCEL;// ,
Notification.FLAG_NO_CLEAR;// 'Clear' , (QQ ,
// , , 。
Notificationnotification=newNotification();
notification.icon=R.drawable.icon;
notification.tickerText="Custom!";
RemoteViewscontentView=newRemoteViews(getPackageName(),R.layout.custom);
contentView.setImageViewResource(R.id.image,R.drawable.icon);
contentView.setTextViewText(R.id.text,"Hello,thismessageisinacustomexpandedview");
notification.contentView=contentView;
// , setLatestEventInfo()
// contentIntent
notification.contentIntent=pd;
nm.notify(3,notification);

좋은 웹페이지 즐겨찾기