android Como abrir a última atividade ao tocar na notificação

Eu observei várias perguntas semelhantes, mas elas não puderam me ajudar. Preciso exibir a última atividade quando o usuário clicar em notificação. Aqui está o meu código:

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(YourService.this)
        .setContentTitle(getResources().getText(R.string.app_name))
        .setContentText(getServiceStateDescription(YourService.this))
        .setSmallIcon(iconId)
        .setWhen(System.currentTimeMillis());

Intent nIntent = getPreviousIntent();
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// Adds the back stack
stackBuilder.addParentStack(MainActivity_.class);
stackBuilder.addNextIntent(nIntent);
PendingIntent pendingIntent =
        stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
notificationBuilder.setContentIntent(pendingIntent);

startForeground(ContextConstants.LAUNCHER_SERVICE_NOTE_ID, notificationBuilder.build());


private Intent getPreviousIntent() {
Intent newIntent = null;
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    final List<ActivityManager.AppTask> recentTaskInfos = activityManager.getAppTasks();
    if (!recentTaskInfos.isEmpty()) {
        for (ActivityManager.AppTask appTaskTaskInfo: recentTaskInfos) {
            if (appTaskTaskInfo.getTaskInfo().baseIntent.getComponent().getPackageName().equals(ContextConstants.PACKAGE_NAME)) {
                newIntent = appTaskTaskInfo.getTaskInfo().baseIntent;
                newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            }
        }
    }
} else {
    final List<ActivityManager.RecentTaskInfo> recentTaskInfos = activityManager.getRecentTasks(1024, 0);
    if (!recentTaskInfos.isEmpty()) {
        for (ActivityManager.RecentTaskInfo recentTaskInfo: recentTaskInfos) {
            if (recentTaskInfo.baseIntent.getComponent().getPackageName().equals(ContextConstants.PACKAGE_NAME)) {
                newIntent = recentTaskInfo.baseIntent;
                newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            }
        }
    }
}
if (newIntent == null) newIntent = new Intent();
return newIntent;

}

O segundo ponto é que, se eu usei métodos obsoletos para criar uma notificação, exibir a última atividade funcionará muito bem como eu queria aqui é o código:

Notification note = new Notification(iconId,
            getResources().getText(R.string.serviceStarted),
            System.currentTimeMillis());
    note.flags |= Notification.FLAG_ONGOING_EVENT;
    note.flags |= Notification.FLAG_NO_CLEAR;

    Intent nIntent = new Intent();
    nIntent = getPreviousIntent(nIntent);
    PendingIntent pi = PendingIntent.getActivity(this, 0, nIntent, 0);
    note.setLatestEventInfo(this,
            getResources().getText(R.string.app_name), getServiceStateDescription(YourService.this), pi);

    startForeground(ContextConstants.LAUNCHER_SERVICE_NOTE_ID, note);

But i don't want use deprecated metods anymore, that's why i'm here explaining. Thanks in advance!

E eu viesta doc também.

Aqui está o meu manifesto:

<?xml version="1.0" encoding="utf-8"?>

<permission android:name="com.my.package.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.my.package.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.GET_TA,SKS"/>

<application
    android:name=".MyApplication"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppCompat.Light">
    <activity android:name=".activity.StartingActivity_"  android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activity.MainActivity_"
        android:configChanges="orientation|screenSize">
    </activity>
    <activity
        android:name=".activity.ComposeEmailActivity_"
        android:configChanges="orientation|screenSize"
        android:parentActivityName=".activity.MainActivity_">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".activity.MainActivity_" />
    </activity>
    <activity
        android:name=".activity.EditAccountActivity_"
        android:configChanges="orientation|screenSize"
        android:parentActivityName=".activity.MainActivity_">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".activity.MainActivity_" />
    </activity>               

    <!--android:process=":remote" is for working in background-->
    <service android:enabled="true" android:name=".service.YourService"/>       

</application>

questionAnswers(1)

yourAnswerToTheQuestion