Перезапуск приложения 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);