我正在使用以下代码显示通知,但setAutoCancel(true)无效,因为当我点击通知以打开应用程序时,通知仍然在通知栏上,并且我必须使用手势删除通知或使用通知栏中的清除所有按钮手动删除它。
在Android 4.4.2设备中,它可以正常工作,但在我的Nexus 7上,它不能正常工作。出了什么问题?
在Android 4.4.2设备中,它可以正常工作,但在我的Nexus 7上,它不能正常工作。出了什么问题?
private void generateNotification(Context context, String message) {
Intent intent = new Intent(GCMListenerService.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);
Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
String appName = context.getResources().getString(R.string.app_name);
int width;
int height;
if (Util.checkAndroidVersionUpperOrEqualThan(11)){
width = getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width);
height = getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_height);
}else{
width = 64;
height = 64;
}
image = Bitmap.createScaledBitmap(image, width, height, false);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(image)
.setContentTitle(appName)
.setContentText(message)
.setSound(defaultSoundUri)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.setStyle(new NotificationCompat.BigTextStyle().bigText(message));
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0,notificationBuilder.build());
}
.setCategory(Notification.CATEGORY_MESSAGE)
与所有其他选项一起使用,包括setAutocancel和其他选项。 - PankajNotification.CATEGORY_MESSAGE
。 - Pankaj.setCategory(NotificationCompat.CATEGORY_MESSAGE)
,但没有起作用.... :/ - NullPointerException