android - 从通知中单击时,使用后退堆栈的向上导航不起作用

标签 android android-pendingintent up-navigation

我正在通过通知打开一项 Activity ,该 Activity 打开良好。 但是,我想在单击“后退按钮”时打开它的父 Activity ,目前它直接退出应用程序。我希望它导航到 HomeScreenActivity。

这是 list 声明 -

<activity
        android:name="com.discover.activities.MyTrialsActivity"
        android:exported="true"
        android:parentActivityName="com.discover.activities.HomeScreenActivity"
        android:screenOrientation="portrait">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.discover.activities.HomeScreenActivity" />
    </activity>

这是我生成通知的代码 -

public static PendingIntent getAction(Activity context, int actionId) {
    Intent intent;
    PendingIntent pendingIntent;

    intent = new Intent(context, MyTrialsActivity.class);

    //intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
    // Adds the back stack
    //stackBuilder.addParentStack(HomeScreenActivity.class);
    stackBuilder.addParentStack(HomeScreenActivity.class);
    // Adds the Intent to the top of the stack
    stackBuilder.addNextIntent(intent);
    // Gets a PendingIntent containing the entire back stack
    pendingIntent =
            stackBuilder.getPendingIntent(0 /*request code */, PendingIntent.FLAG_ONE_SHOT);

    /*pendingIntent = PendingIntent.getActivity(context, 0 *//* Request code *//*, intent,
            PendingIntent.FLAG_UPDATE_CURRENT*//*|PendingIntent.FLAG_ONE_SHOT*//*);*/
    return pendingIntent;
}

/**
 * Create and show a simple notification containing the message.
 *
 * @param message Message to show in notification
 */
public static void sendNotification(Context context, String message, int actionId) {
    PendingIntent pendingIntent = NotifUtils.getAction((Activity) context, actionId);

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentTitle("Title")
            .setContentText(message)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setVibrate(new long[]{1000})
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager =
            (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}

最佳答案

我已正确设置所有内容,但它仍然无法正常工作,您可能需要卸载并重新安装该应用程序。当您运行应用程序时, list 中的某些更改似乎未正确更新!

关于android - 从通知中单击时,使用后退堆栈的向上导航不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35916224/

相关文章:

android - Apple Maps 和 Google Maps API 可行性

android - 如何在 Android Wear 中动态更改 Action 图标

android - 谷歌位置 API : request location updates with pending intent?

android - 实现类似 NYTimes 的部分 "Up"导航

Android 导航组件 - OnNavigateUpListener

android - 提供向上(又名返回)导航 - 使用 UI fragment

android - Android Studio内部构建失败(命令行有效)

android - 我的服务在后退按钮后停止

android - 偏好 Activity : getFragmentManager() has been deprecated

android - Android 6.0 Doze 模式下的 Alarm Manager 问题