#android #android-activity
#Android #android-активность
Вопрос:
В моем приложении у меня есть функция SIP-вызова.
Когда приложение не открывается, оно удаляется из системной памяти и получает входящий вызов, оно открывает активность вызова из службы SIP.
Когда вызов отключается, я завершаю действие.
Но проблема в том, что активность все еще находится в памяти (при нажатии кнопки home).
Я хочу, чтобы эта активность не была в памяти.
Например, поведение вызова приложения, которое не сохраняет активность в памяти, когда приложение было убито
, т.Е. Не в памяти.
Из службы SIP я называю это так.
Intent intentIncomingCall = new Intent(getApplicationContext(), CallActivity.class);
intentIncomingCall.putExtra("DisplayName", callerDisplayName);
intentIncomingCall.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intentIncomingCall);
и при отключении вызова я просто останавливаю службу и вызываю finish()
activity.
Я пробовал добавлять флаги и exit(), но ничего не работает.
Ответ №1:
android:allowTaskReparenting="false"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:permission="android.permission.USE_SIP"
android:screenOrientation="portrait"
android:taskAffinity=""
Попробуйте добавить вышеуказанные свойства к активности в манифесте
Комментарии:
1. Великий человек, большое спасибо, у меня нет слов, что сказать в ответ. Ты гений.
Ответ №2:
Добавьте строку ниже метода finish() :
finish();
System.exit(0);
Комментарии:
1. это не очистка приложения из памяти. При нажатии кнопки «Домой» активность по-прежнему отображается в списке последних приложений.
2. MainActivity» android:excludeFromRecents =»true» …
3. добавьте эти строки в свой файл menifest
Ответ №3:
при закрытом обратном вызове,
System.exit(0);
or
android.os.Process.killProcess(android.os.Process.myPid());
Комментарии:
1. это не очистка приложения из памяти. При нажатии кнопки «Домой» активность по-прежнему отображается в списке последних приложений.