После нажатия на значок приложения программа запуска снова и снова создает новый экземпляр активности 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...
}

Ответы на вопрос(0)

Ваш ответ на вопрос