使用提供的backstack启动活动

时间:2017-03-15 10:40:40

标签: android android-intent android-activity android-notifications back-stack

我想开始预编译""用户单击通知时的堆栈活动。我试过了:

Intent[] intents = new Intent[]{
        new Intent(this, ActivityA.class)
        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK),
        new Intent(this, ActivityB.class)

PendingIntent pendingIntent = PendingIntent.getActivities(this, 0, intents, PendingIntent.FLAG_ONE_SHOT);

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this);
notificationBuilder.setContentIntent(pendingIntent)

如同documentation所述,我已将NEW_TASK标志添加到第一个意图中。无论如何,当我点击通知时,ActivityB启动并按下我没有堆栈(没有ActivityA)并且应用程序已关闭。

1 个答案:

答案 0 :(得分:1)

有一种方法。

来自通知 - >重定向到ActivityA,如下所示

Intent intent = new Intent(context.this,ActivityA.class);
intent.putExtra("isFromNotification",true);

On ActivityA - > onCreate方法 - >在setContentView()方法之后写下这行

boolean isFromNotification = getIntent().getBooleanExtra("isFromNotification",false);
    if (isFromNotification){
        Intent intent = new Intent(ActivityA.this,ActivityB.class);
        startActivity(intent);
    }

注意:这样做会立即重定向到ActivityB,同时在堆栈上保存ActivityA。因此,当用户按下后退按钮时,它将重定向到ActivityA。