Android通知button没有显示

这是我的代码来设置button通知

Intent receiverIntent = new Intent(ctx, ResponsivePrefsActivity.class); PendingIntent pReceiverIntent = PendingIntent.getActivity(ctx, 1, receiverIntent, 0); Intent clearIntent = new Intent(ctx, ResponsivePrefsActivity.class); clearIntent.setAction("clear"); PendingIntent pClearIntent = PendingIntent.getActivity(ctx, 1, clearIntent, 0); Intent colorsIntent = new Intent(ctx, ResponsivePrefsActivity.class); colorsIntent.setAction("colors"); PendingIntent pColorsIntent = PendingIntent.getActivity(ctx, 1, colorsIntent, 0); Intent animationIntent = new Intent(ctx, ResponsivePrefsActivity.class); animationIntent.setAction("animation"); PendingIntent pAnimation = PendingIntent.getActivity(ctx, 1, animationIntent, 0); Notification.Builder builder; builder = new Notification.Builder(ctx).setSmallIcon(R.drawable.ic_launcher).setAutoCancel(false) .setContentTitle("Draw Me: A Live Wallpaper").setContentText("Never get bored again!") .setContentIntent(pReceiverIntent).addAction(R.raw.ic_menu_close_clear_cancel, "Clear", pClearIntent) .addAction(R.raw.ic_menu_edit, "Colors", pColorsIntent).addAction(R.raw.ic_menu_play_clip, "Animation", pAnimation); Notification notification = builder.build(); NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(0, notification); 

通知正在显示,但button不显示。 我的设备有Android 4.1.1我在一个片段中设置了这个通知。 我究竟做错了什么? 谢谢!

Solutions Collecting From Web of "Android通知button没有显示"

让我告诉你一些非常尴尬的事情。 如果您在进行中的通知中有任何内容,则不会看到button。 通常情况下,当手机通过USB连接到电脑时会发生这种情况。 希望这可以解决你的问题

只是提醒任何人有类似的问题。 根据Android 通知指南 ,通知可以以两种样式显示:

  • 普通视图(默认情况下,动作button不显示)(用户必须展开通知才能显示)
  • 大视图,如果通知列表中的第一个通知或用户已扩展通知,则可以看到该视图。

因此,为了强制通知出现在Big View中,我们所要做的只是把它放在通知列表的最上面。 这可以通过将When属性设置为0来完成,这使得它在通知中最老! (有时候虽然我们可能不想要这个)。 所以打电话

 setWhen(0) 

到您的通知,你就完成了。

当列表中有任何正在进行的通知(例如媒体播放器控件)或正在编辑文本时的IME切换器选项时,button将不会显示。

幸运的是,只需将通知的优先级设置得好又高,就可以克服这个问题。 我只用过Notification.PRIORITY_MAX来解决这个问题,但PRIORITY_HIGH似乎也可以。 像这样设置:

 Notification notification = new Notification.Builder(myContext) .setContentTitle(res.getString(R.string.my_title)) .setPriority(Notification.PRIORITY_MAX) //The rest of your options .build(); 

就这样做:::

 .setPriority(Notification.PRIORITY_MAX) .setWhen(0) 

完整的代码是:

 Notification noti = new Notification.Builder(this) .setContentTitle("New mail from " + "test@gmail.com") .setContentText("Subject").setSmallIcon(R.drawable.ic_launcher) .setContentIntent(pIntent) .setPriority(Notification.PRIORITY_MAX) .setWhen(0) .addAction(R.drawable.ic_launcher, "Call", pIntent) .addAction(R.drawable.ic_launcher, "More", pIntent) .addAction(R.drawable.ic_launcher, "And more", pIntent).build(); 

只需在你的code做这样的改变

 Notification n = new Notification.Builder(this) .setSmallIcon(R.drawable.icon) .setContentTitle("New mail from " + "test@gmail.com") .setContentText("Subject") .setContentIntent(pIntent).setAutoCancel(true) .setStyle(new Notification.BigTextStyle().bigText(longText)) .build(); NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); // Hide the notification after its selected notificationManager.notify(0, n); 

添加你需要在这个..我希望它会帮助你..