После нажатия на значок приложения программа запуска снова и снова создает новый экземпляр активности root.
После нажатия на значок приложения программа запуска создает новый экземпляр корневого действия, и вызывается onCreate () корневого действия, когда корневое действие уже присутствует в фоновом режиме, то есть onPause (). Он снова и снова создает новый экземпляр корневого действия вместо корневого действия onResume ().
Я знаю, что это связано с тем, что намерения, используемые для запуска приложения, отличаются. Eclipse запускает приложение, используя намерение без действия и без категории. Программа запуска запускает приложение, используя намерение с действием android.intent.action.MAIN и категорией android.intent.category.LAUNCHER. Установщик запускает приложение с действием android.intent.action.MAIN и без категории.
После долгих поисков я нашел следующий код. Он работает. Но я думаю, что это обходной путь. Есть ли другое решение, кроме следующего кода.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
// Activity was brought to front and not created,
// Thus finishing this will get us to the last viewed activity
finish();
return;
}
// Regular activity creation code...
}