нажмите на уведомление, чтобы перейти к текущей деятельности

я использую это решение:Как возобновить намерение уведомления, а не новое?

Я работаю нормально, когда я запускаю свое приложение в обычном режиме ... однако мое приложение имеет функцию общего доступа.

Когда я выбираю изображения, которыми хочу поделиться, из приложения галереи и открываю его в своей деятельности, я создаю уведомление в этой деятельности. Я хочу, чтобы, когда пользователь нажимает на уведомление, он открывает существующее действие (открытое приложением галереи)

Проблема в том, что когда я нажимаю на уведомление, оно не возобновляет эту активность, а вместо этого открывает новый экземпляр действия или другой экземпляр, уже открытый ранее.

Изменить: больше объяснений

Мое приложение называется ShareApp, а действие называется ShareActivity. Проблема в том, что когда я открываю ShareActivity через приложение галереи, в верхней части задачи приложения галереи создается экземпляр ShareActivity. 'стек Теперь, когда я создаю уведомление, которое указывает на мою ShareActivity, я использую намерение:

Intent intent = new Intent(this, ShareActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

проблема в том, что когда я нажимаю на уведомление, оно указывает на экземпляр ShareActivity в задаче ShareAppстек вместо задачи приложения галереис стеком ..

Любая идея, как указать на правильную задачус стеком ??

редактировать 2: мой код

        int defaults = Notification.FLAG_NO_CLEAR;
        NotificationCompat.Builder mBuilder =
                    new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.ic_launcher)
                    .setContentTitle(getString(R.string.app_name))
                        .setContentText(text)
                        .setDefaults(defaults);
        Intent intent = new Intent(this, this.getClass());
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

        mBuilder.setContentIntent(pendingIntent);
        NotificationManager mNotificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.notify(_ID, mBuilder.build());

Редактировать 3: adb shell dumpsys активность (после применения кода Дэвидомhttps://stackoverflow.com/a/16901603/1334268)

Мое приложение называется shareApp, а моя деятельность - ShareActivity.

Прежде чем нажать на уведомление:

Main stack:
    TaskRecord{41965708 #6 A com.android.gallery3d}
    Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.gallery3d/.app.Gallery bnds=[364,50][108,108]}
      Hist #2: ActivityRecord{417ccc28 com.yeahman.shareapp/.ShareActivity}
        Intent { act=android.intent.action.SEND_MULTIPLE typ=image/* cmp=com.yeahman.shareapp/.ShareActivity (has extras) }
        ProcessRecord{41c868d0 6088:com.yeahman.shareapp/10116}
      Hist #1: ActivityRecord{4135e540 com.android.gallery3d/.app.Gallery}
        Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.gallery3d/.app.Gallery bnds=[364,50][108,108] }

После нажатия на уведомление:

 Main stack:
    TaskRecord{41965708 #6 A com.android.gallery3d}
    Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.gallery3d/.app.Gallery bnds=[364,50][108,108]}
      Hist #3: ActivityRecord{4169f358 com.android.gallery3d/.app.Gallery}
        Intent { flg=0x20000000 cmp=com.android.gallery3d/.app.Gallery bnds=[0,205][480,301] }
        ProcessRecord{4175dd28 5808:com.android.gallery3d/10036}
      Hist #2: ActivityRecord{417ccc28 com.yeahman.shareapp/.ShareActivity}
        Intent { act=android.intent.action.SEND_MULTIPLE typ=image/* cmp=com.yeahman.shareapp/.ShareActivity (has extras) }
        ProcessRecord{41c868d0 6088:com.yeahman.shareapp/10116}
      Hist #1: ActivityRecord{4135e540 com.android.gallery3d/.app.Gallery}
        Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.gallery3d/.app.Gallery bnds=[364,50][108,108] }

Ответы на вопрос(4)

Ваш ответ на вопрос