Android: 알림 표시줄에서 알림 제거
애플리케이션을 만들었고 이벤트를 통해 안드로이드 알림바에 알림을 추가할 수 있습니다.이제 이벤트의 알림 표시줄에서 해당 알림을 제거하는 방법에 대한 샘플이 필요합니다?
이 빠른 코드를 사용해 볼 수 있습니다.
public static void cancelNotification(Context ctx, int notifyId) {
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nMgr = (NotificationManager) ctx.getSystemService(ns);
nMgr.cancel(notifyId);
}
이것은 아주 간단합니다.전화를 해야합니다.cancel
아니면cancelAll
사용자의 Notification Manager에서.취소방법의 파라미터는 취소되어야 하는 알림의 ID입니다.
API 참조: http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int)
전화할 수도 있습니다.cancelAll
알림 관리자를 통해 알림 ID에 대해 걱정할 필요가 없습니다.
NotificationManager notifManager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.cancelAll();
편집: 저는 반대표를 받았기 때문에 이것은 당신의 애플리케이션에서 알림만 제거하도록 지정해야 할 것 같습니다.
이를 통해 다음과 같은 효과를 얻을 수 있습니다.
NotificationManager mNotificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
mNotificationManager.cancelAll();
이것은 앱에 의해 만들어진 모든 알림을 제거할 것입니다.
전화를 걸어 알림을 작성하는 경우
startForeground();
부대 내에서전화를 해야할지도 모릅니다.
stopForeground(false);
먼저 알림을 취소합니다.
다음 코드와 같이 AutoCancel(True)을 설정하기만 하면 됩니다.
Intent resultIntent = new Intent(GameLevelsActivity.this, NotificationReceiverActivityAdv.class);
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
GameLevelsActivity.this,
0,
resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
getApplicationContext()).setSmallIcon(R.drawable.icon)
.setContentTitle(adv_title)
.setContentText(adv_desc)
.setContentIntent(resultPendingIntent)
//HERE IS WHAT YOY NEED:
.setAutoCancel(true);
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(547, mBuilder.build());`
다음을 사용하여 포그라운드로 시작되는 서비스에서 Notification을 생성하는 경우
startForeground(NOTIFICATION_ID, notificationBuilder.build());
그다음에
notificationManager.cancel(NOTIFICATION_ID);
Notification & Notification을 취소해도 작동하지 않습니다. 상태 표시줄에 계속 나타납니다.이 경우 다음과 같은 두 가지 방법으로 해결할 수 있습니다.
1> stopForeground( false ) inside service 사용:
stopForeground( false );
notificationManager.cancel(NOTIFICATION_ID);
2> 호출 활동으로 해당 서비스 클래스를 파괴합니다.
Intent i = new Intent(context, Service.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
if(ServiceCallingActivity.activity != null) {
ServiceCallingActivity.activity.finish();
}
context.stopService(i);
두번째 방법은 음악 플레이어 알림에서 더 선호하는 이유는 알림 제거 뿐만 아니라 플레이어도 제거하기 때문입니다.!!
간단히 요약하면 다음과 같습니다.
NotificationManagerCompat.from(context).cancel(NOTIFICATION_ID)
또는 모든 알림을 취소하려면 다음을(를)
NotificationManagerCompat.from(context).cancelAll()
Android X 또는 지원 라이브러리용으로 제작되었습니다.
이거 한번 해보세요.
public void removeNotification(Context context, int notificationId) {
NotificationManager nMgr = (NotificationManager) context.getApplicationContext()
.getSystemService(Context.NOTIFICATION_SERVICE);
nMgr.cancel(notificationId);
}
Notification Manager를 사용하여 알림을 취소합니다.알림 ID만 제공하면 됩니다.
mNotificationManager.cancel(YOUR_NOTITY_ID);
NotificationManager.cancel(id)
정답입니다.그러나 전체 알림 채널을 삭제하면 안드로이드 오레오 이후 알림에서 삭제할 수 있습니다.이렇게 하면 삭제된 채널의 모든 메시지가 삭제됩니다.
Android 문서의 예는 다음과 같습니다.
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// The id of the channel.
String id = "my_channel_01";
mNotificationManager.deleteNotificationChannel(id);
도움이 될 것입니다.
private var notificationManager = NotificationManagerCompat.from(this)
notificationManager.cancel("your_notification_id")
이렇게 알림 포그라운드로 시작하는 경우
startForeground("your_notification_id",notification.build())
그러면 포그라운드 서비스도 중지해야 합니다.
notificationManager.cancel("your_notification_id")
stopForeground(true)
Android API >=23에서 알림 그룹을 제거하기 위해 이와 같은 작업을 수행할 수 있습니다.
for (StatusBarNotification statusBarNotification : mNotificationManager.getActiveNotifications()) {
if (KEY_MESSAGE_GROUP.equals(statusBarNotification.getGroupKey())) {
mNotificationManager.cancel(statusBarNotification.getId());
}
}
전화 아이디:
public void delNoti(int id) {((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).cancel(id);}
언급URL : https://stackoverflow.com/questions/3595232/android-remove-notification-from-notification-bar
'programing' 카테고리의 다른 글
PowerShell PSScriptRoot가 null입니다. (0) | 2023.09.11 |
---|---|
모든 쿼리 문자열 이름/값 쌍을 컬렉션으로 가져올 수 있는 방법이 있습니까? (0) | 2023.09.11 |
자바스크립트로 현재 디렉터리 이름을 얻으려면 어떻게 해야 합니까? (0) | 2023.09.11 |
JAXB: 목록에 있는 물체들을 어떻게 모아야 합니까? (0) | 2023.09.11 |
HQL에서 SQL로의 번역을 이해할 수 없습니다. (0) | 2023.09.11 |