TaskStackBuilder无法通过通知工作

时间:2020-05-15 21:23:47

标签: java android push-notification taskstackbuilder

从推送通知中打开应用程序时,我试图将常规工作流程保留到家庭活动中。我正在使用TastStackBuilder创建待处理的意图:

    Intent childActivityIntent = new Intent(context, ChildActivity.class);

    TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(context);
    taskStackBuilder.addNextIntentWithParentStack(childActivityIntent);

    PendingIntent pendingIntent = taskStackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);

    int iconResource = getIconResource(icon);

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, "fcm_default_channel")
            .setSmallIcon(iconResource)
            .setContentTitle(messageTitle)
            .setContentText(messageBody)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent);

这是清单:

<activity
        android:name="com.example.ui.HomeActivity"
        android:label="@string/app_name"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:screenOrientation="portrait"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

<activity
        android:name=".ui.ChildActivity"
        android:theme="@style/whiteTheme"
        android:screenOrientation="portrait"
        android:parentActivityName=".ui.HomeActivity"/>

当我单击通知时,ChildActivity会打开正确的活动,但是当我按返回时,HomeActivity不会打开,应用程序只会关闭。

我已经尝试过重新安装应用程序,将PendingIntent标志更改为FLAG_CANCEL_CURRENT,但似乎无济于事。

但是,如果我在TaskStackBuilder上开始活动,则工作流将正确应用:

    Intent childActivityIntent = new Intent(context, ChildActivity.class);

    TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(context);
    taskStackBuilder.addNextIntentWithParentStack(childActivityIntent);
    taskStackBuilder.startActivities();

知道为什么这不起作用吗?

0 个答案:

没有答案