Android 알림 Notification 기본 사항 및 적절한 요약

4093 단어 android 지식 요약
Notification 자세히 1, Notification Manager 객체 만들기
NotificationManager mManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//                ,         

2. Notification 객체 만들기
Notification notification = new Notification.Builder(this)
	.setContentTitle("title") 				//     
	.setContentText("text")					//      
	.setWhen(System.currentTimeMills())		//    ,          ,       
	.setSmallIcon(R.mipmap.ic_launch)		//         
	.setLargeIcon(R.mipmap.ic_launch)		//         
	.setTicker("ticker")					//          
	.setChannelId(Channel)					//  channelId        
	.setContentIntent(pengdingIntent)		//             , Intent    ,     
	.setPriority(NotificationCompat.PRIORITY_DEFAULT) //     
	.setSytle()								//     
	.setAutoCancel(true)					//      
	.build();								//    notification
mManager.notify(0, notification);			//notify   ,                 

3. PengdingIntent의 사용
// :  PendingIntent          。
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,XXX.class), 0);


사용 설명: (1) getActivity(), getBroadcast(), getService() 방법으로 실례를 얻기;(2) 매개 변수는 (Context,requestcode,Intent,flag)requestcode로 일반적으로 사용되지 않으며 0으로 설정됩니다.flag은 있음:FLAGONE_SHOT//는 이 의도를 한 번만 사용할 수 있음을 의미하며, 후속 알림을 클릭하면 FLAG 를 열 수 없음을 나타냅니다.NO_CREATE//이미 존재하는 것을 발견하면 새로운 요청을 무시하고 오래된 것을 계속 사용하며 일상적인 개발에서 FLAG 를 거의 사용하지 않습니다CANCEL_CURRENT//새로 요청한 Pending Intent가 이미 존재하는 것을 발견하면 이미 존재하는 것을 취소하고 낡은 FLAG 를 새 것으로 대체합니다UPDATE_CURRENT//새 요구의 Pending Intent가 이미 존재하는 것을 발견하면 Intent에 필드가 바뀌면 이미 존재하는 Pending Intent를 업데이트합니다
4. 점프 후 Activity에서 취소 알림(1) 설정 자동 취소
	.setAutoCancel(true)					//      
	.build();								//    notification

(2) 점프 후 Activity
	NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
	manager.cancel(0);

여기서 cancel이 전송하는 0은 Notification 작성에 지정된 공지 ID입니다.
5. 알림 진급 (1) 문자가 너무 길어서 전체 문제를 표시할 수 없음을 해결합니다 setContext를 사용할 때 내용이 긴 문자열이고 내용이 더 이상 전체 줄을 표시할 수 없습니다. 이 문제를 해결하기 위해 setStyle () 방법을 사용합니다
	.setStyle(new Notification.BigTextStyle.bigText("              "))

​ NotificationCompat.BigTextStyle 이 대상은 긴 텍스트 정보를 봉인하는 데 사용되며, BigText () 방법을 호출하여 텍스트를 전송하면 됩니다
(2) 그림이 있는 정보 설정
	.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher)))

이것이 바로 알림에 그림을 넣는 호출 방법이다
(3) 알림의 중요도 설정
	.setPriority(Notification.PRIORITY_MAX)

PRIORITY_DEFAULT: 효과가 설정되지 않은 것처럼 기본 중요도를 나타냅니다.PRIORITYMIN: 가장 낮은 중요도를 나타냅니다.PRIORITY는 사용자가 상태 표시줄을 드롭다운 경우에만 표시됩니다.LOW: 중요도가 낮음을 나타내며 시스템은 이러한 알림을 줄이거나 표시 순서를 변경하여 더 중요한 알림 다음에 배치합니다.PRIORITY_HIGH: 중요도가 높다는 의미로, 시스템에서 이러한 공지 방법을 표시하거나 이전 PRIORITY와 비교하여 표시 순서를 변경할 수 있습니다.MAX: 가장 중요한 것은 사용자가 해당하는 메시지 상자를 팝업하는 것입니다.
또 다른 방법도 있다. 예를 들어 set Ongoning(boolean)을 클릭하거나 옆으로 미끄러지면 알림이 사라질지 여부. 일반적으로 그것을 이용하여 실행 중인 알림을 설정한다. 예를 들어 음악 재생이나 다운로드 진도 등 특수한 장면을true로 설정해야 한다.
setDefaults(Notification.DEFAULT_VIBRATE)        ,       ,      ,     
	//Notification.DEFAULT_VIBRATE         
	//Notification.DEFAULT_SOUND         
	//Notification.DEFAULT_LIGHTS          
	//Notification.DEFAULT_ALL       3     


6. 어댑터의 targetsDKVersion>=26, 채널 알림 채널을 설치하지 않으면 알림을 보여줄 수 없습니다.Android O는 알림 채널(Notification Channels)을 도입하여 통일된 시스템을 제공하여 사용자가 알림을 관리할 수 있도록 돕는다. 만약android O를 목표 플랫폼으로 할 때 사용자에게 알림을 표시할 수 있도록 하나 이상의 알림 채널을 실현해야 한다.예를 들어 채팅 소프트웨어는 모든 채팅 그룹에 알림 채널을 설치하고 특정한 소리, 조명 등 설정을 지정한다.
솔루션:
	NotificationChannel channel = new NotificationChannel(1,"channel_name",NotificationManager.IMPORTANCE_HIGH);
	 NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
     notificationManager.createNotificationChannel(channel);
     
     //   Build      .setChannelId("1")
        


이 통지를 다 해야만 정상적으로 팝업할 수 있다.

좋은 웹페이지 즐겨찾기