Перезапуск приложения Android после завершения процесса

Когда мое приложение простаивает, Android убивает процесс. Если пользователь повторно открывает приложение через некоторое время, создается только верхняя активность - это проблема для меня, потому что активность зависит от инициализации других объектов (которые теперь уничтожены).

В этом случае я хочу повторить запуск приложения. Как я могу это сделать?

Ответ 1

Просто убедитесь, что ваш Application запускается после того, как он был ранее уничтожен Android, вы можете сделать это, сохранив переменную в пользовательском классе Application и настройте ее на true после того, как ваш applicaiton будет инициализирован. Поэтому, когда аппликация повторно запущена, этот флаг является ложным, а затем просто создайте Intent для запуска основного Activity с указанием FLAG_ACTIVITY_CLEAR_TOP:

Intent reLaunchMain=new Intent(this,MainActivity.class);
reLaunchMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(reLaunchMain);

Ответ 2

Вероятно, вы должны искать такие объекты в своей реализации приложения Application.

Если эти объекты содержат состояние, которое должно быть более постоянным, вы должны сохранить состояние таких объектов в каждом действии onPause(), либо в базу данных, либо в SharedPreferences, либо удаленно.

Ответ 3

Я думаю, что этот ответ только для вас.

По завершении выполнения нажмите

        finish();
        Intent intent = new Intent(this, sameactivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);