单击通知时跳过前景应用,无需打开新

时间:2016-07-20 10:23:08

标签: android notifications

我想做的是在两种情况下通过通知打开应用程序:

  1. 案例打开应用:只需拉背景

  2. 案例结束应用:打开新应用

  3. 我的代码是下一个:

    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。

    有人帮助我吗?

1 个答案:

答案 0 :(得分:0)

为您的意图添加标记FLAG_ACTIVITY_NEW_TASK

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

来自docs

  

使用此标志时,如果任务已在您正在启动的活动中运行,则不会启动新活动;相反,当前任务将简单地以最后一个状态显示在屏幕的前面。