我在我的应用中集成了通知,我处理了2个案例: 使用NotificationCompat.Builder进行预果冻豆通知,以及 用建设者发布果冻豆通知。 这使我能够管理大文本和后果冻豆版本中的动作,并且可以工作2到3次,但是以奇怪的方式,今天我在JB及以下版本中获得了相同的结果。
Pre JB代码:
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pint = PendingIntent.getActivity(context, 0, notificationIntent, 0);
NotificationCompat.Builder notif = new NotificationCompat.Builder(context)
.setContentTitle(nMessage.getTitle())
.setContentText(nMessage.getMessage())
.setTicker(nMessage.getTitle())
.setWhen(when)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setSmallIcon(R.drawable.ic_ttd_petales)
.setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
.setAutoCancel(true)
.setContentIntent(pint);
notification= notif.build();
notificationManager.notify(0, notification);
JB及以上代码:
Builder bigTextNotification = new Notification.Builder(context)
.setContentTitle(nMessage.getTitle())
.setTicker(nMessage.getTitle())
.setContentText(nMessage.getMessage())
.setWhen(when)
.setPriority(Notification.PRIORITY_HIGH)
.setSmallIcon(R.drawable.ic_ttd_petales)
.setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_SOUND)
.setAutoCancel(true)
.setContentIntent(pint);
if(nMessage.getHasPhone()){
Intent iCall = new Intent(Intent.ACTION_CALL,Uri.parse(nMessage.getPhone()));
PendingIntent pintCall = PendingIntent.getActivity(context, 0, iCall, Intent.FLAG_ACTIVITY_NEW_TASK);
bigTextNotification.addAction(R.drawable.ic_menu_call, context.getResources().getString(R.string.call_ttd), pintCall);
}
String[] recipients = new String[]{context.getResources().getString(R.string.default_email)};
String subject = context.getResources().getString(R.string.about_offer);
Intent iEmail = new Intent(android.content.Intent.ACTION_SEND);
iEmail.setType("text/html");
iEmail.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
iEmail.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
PendingIntent pintEmail = PendingIntent.getActivity(context, 1, iEmail, Intent.FLAG_ACTIVITY_NEW_TASK);
bigTextNotification.addAction(R.drawable.ic_menu_compose, context.getResources().getString(R.string.call_ttd), pintEmail);
Notification notif = new Notification.BigTextStyle(bigTextNotification)
.bigText(nMessage.getMessage())
.build();
notificationManager.notify(1000, notif);
你有没有遇到过这样的行为,或者我错过了什么?
答案 0 :(得分:1)
我有类似的经历:我会发送通知,它会显示内容文本而不是大文本。然后,当我拔下USB时,它会显示扩展的大文本。
现在请注意,当您插入USB时,会收到持续通知:“作为媒体设备连接”。看一看,看看你是否与其他正在进行的通知有相同的行为,例如“使用GPS搜索”。我做。 (我的测试设备是三星Galaxy Rush,其垂直空间非常有限。)
因此,虽然Android Notifications documentation表示只有顶级通知显示为已展开,但看起来还有其他规则:
如果通知列表的空间不足,即使是最高通知也会崩溃。
您可以通过双指或单指拖动来展开折叠通知,具体取决于操作系统版本。
答案 1 :(得分:0)
我很抱歉这个虚假的问题,我不是用模拟器测试这个应用程序,而是真正的手机,奇怪的是当插入usb调试电缆时,通知中没有任何操作(JB)和当拔掉插头时,我们的按钮正常工作:)这解决了我的问题,但我不知道这种行为。