Приложение не должно отображаться в последнем списке приложений после завершения операции, если приложение ранее не отображало список последних приложений

Шаг 1. Приложение не существует в последнем списке приложений (приложение было удалено из списка последних приложений).
Шаг 2. Как только я получил уведомление об открытии IncomingCall, пользователь принимает вызов.
Шаг 3. Пользователь щелкнет по кнопке разъединения, чтобы завершить работу IncomingCall.

Проблема. Приложение, показанное в последнем списке приложений, даже не было в недавнем списке приложений.

Ввод манифеста

<activity
android:name=".activities.IncomingCall"
android:excludeFromRecents="true"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
</activity>

В действии с использованием

public void onClick(View v) {
switch (v.getId()) {
case R.id.onCallDisconnectButton:
phoneCallBaseClass.disconnect();
IncomingCall.this.finish();
break;
  }
}

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

Программно удалить приложение из последних приложений

ИЛИ Есть ли другой способ показать вид входящего вызова, чтобы он не сохранялся в истории.

вы можете взять пример любого приложения VoIP-вызовов -

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

Спасибо

Ответ 1

Слава Богу, я получил ответ после размышления неделю. Добавьте атрибут singleInstance вместе с исключением из недавнего. Это была ошибка в 5.0, теперь была решена в 5.1

 <activity
        android:name="activityName"
        android:excludeFromRecents="true"
        android:launchMode="singleInstance"
         >
 </activity>

Ответ 2

Добавить

android:excludeFromRecents="true" 

к тегу активности вашей активности запуска в файле AndroidManifest.xml

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:excludeFromRecents="true">
....
</activity>

Ответ 3

В соответствии с вашими потребностями finishAndRemoveTask() - это новый API, который согласно документации

Завершает все действия в этой задаче и удаляет их из последних список задач.

if(android.os.Build.VERSION.SDK_INT >= 21)
{
    finishAndRemoveTask();
}
else
{
    finish();
}