Android 알림 Notification 기본 사항 및 적절한 요약
4093 단어 android 지식 요약
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")
이 통지를 다 해야만 정상적으로 팝업할 수 있다.