我想做的是在两种情况下通过通知打开应用程序:
案例打开应用:只需拉背景
案例结束应用:打开新应用
我的代码是下一个:
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
String title = context.getString(R.string.notification_title);
String message = context.getString(getNotificationText());
Bitmap largeIcon = getLargeBitmap();
NotificationCompat.Builder notification =
(NotificationCompat.Builder) new NotificationCompat.Builder(context).setContentTitle(title).setContentText(message)
.setSmallIcon(getIcon()).setLargeIcon(largeIcon).setOngoing(true);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
Intent intent = new Intent(context, MainActivity.class);
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(intent);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setContentIntent(contentIntent);
}
manager.notify(NETWORK_STATUS_NOTIFICATION_ID, notification.build());
}
我遇到的问题是代码在Android 5及更高版本上运行,但在Android上无效:JELLY_BEAN和KITKAT。
有人帮助我吗?
答案 0 :(得分:0)
为您的意图添加标记FLAG_ACTIVITY_NEW_TASK
:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
来自docs:
使用此标志时,如果任务已在您正在启动的活动中运行,则不会启动新活动;相反,当前任务将简单地以最后一个状态显示在屏幕的前面。