Как полностью программно перезагрузить или закрыть своё приложение

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

MainActivity.super.onBackPressed();

finishAndRemoveTask();

android.os.Process.killProcess(android.os.Process.myPid());

finishAffinity();

System.exit(0);

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

Мнение пользователей моей программы меня не интересует, т.к. я делаю её только для себя. Вопрос: "а зачем тебе сбрасывать, это же не правильно" - уже звучал на подобных вопросах и он точно не привёл к положительному результату. Спасибо.


Ответы (1 шт):

Автор решения: Circassian

Попробуй это

void restartApp(Context context) {
    Intent intent = context.getPackageManager().getLaunchIntentForPackage( context.getPackageName() );
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    context.startActivity(intent);
}
→ Ссылка