我已经审查了很多有关此问题的信息,但是没有人能解决它。
在android 7.0设备上,当使用NotificationManager发送多于5条消息时,所有消息将被折叠。
Please click on the image to see the message is collapsed.
当我单击此折叠的通知栏消息时,即使我的应用程序已登录并在前台运行,我的应用程序也将重新启动进入登录活动,这很糟糕。如果我单击单个通知栏消息,则它将正常进入活动。
如何将通知栏消息设置为不折叠,或者当我单击折叠的通知栏消息时,请勿重新启动应用程序。 这是我的代码:
$> cd PATH_TO_YOUR_PROJECT_DIR
我设置了TestActivity
Intent notifyIntent;
PendingIntent appIntent;
notifyIntent = new Intent(context, TestActivity.class);
notifyIntent.putExtra("content", contentJson);
appIntent = PendingIntent.getActivity(context,
noticeId, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "program").setAutoCancel(true)
.setSmallIcon(iconId)
.setContentTitle(notifyTitle)
.setDefaults(Notification.DEFAULT_ALL)
.setNumber(noticeId)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setGroupSummary(false)
.setContentIntent(appIntent);
builder.setVisibility(Notification.VISIBILITY_PUBLIC);
builder.setColorized(true);
Notification myNoti = builder.build();
myNoti.flags = NotificationCompat.FLAG_INSISTENT | Notification.FLAG_AUTO_CANCEL;
if (noticeId > 40) {
noticeId = 0;
notificationManager.cancelAll();
}
notificationManager.notify(noticeId, myNoti);
答案 0 :(得分:0)
我发现了问题,而不是我的想法。应用程序未重新启动。仅重新创建了一次LoginActivity并将其放置在堆栈的顶部。我担心其他人与我的想法相同,并认为该应用程序已重新启动,因此我不会更改此问题。希望能帮助有此问题的人。我将解决方法放在下面。
单击折叠的通知栏消息时,假定已重新创建LoginAtivity。您需要在LoginActivity的onCreate中编写以下代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!isTaskRoot()) {
finish();
return;
}
setContentView(R.layout.activity_main_menu);
}
isTaskRoot()将检测此类是否在堆栈的根目录中。否则,请完成。
请注意,如果onDestory中包含逻辑,请使用isTaskToot()确定,例如:
@Override
protected void onDestroy(){
super.onDestroy();
if (isTaskRoot()) {
//your code
}
}