launchMode является «SingleTop»:Как бороться с несколькими экземплярами Android?
<activity android:name=".MainActivity" android:label="@string/app_name" android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".GridActivity"></activity>
MainActivity это заставка, когда он закончить (аутентификацию на сервере), то позову GridActivity.
Проблема очень специфична:
При установке приложения из Google Play появится значок в двух местах: Применение выдвижных & «Рабочий стол» (пусковая установка экрана - по умолчанию пусковой установки).
Действия по воспроизведению проблемы:
- Откройте приложение из приложения полки и ждать GridActivity будет отображаться
- Нажмите кнопку «домой», чтобы отправить заявку на фон
- Откройте приложение с «рабочего стола» (по умолчанию пусковой устройства)
- Приложение запускается в новом экземпляре
Я ожидаю, что приложение перейдет непосредственно в GridActivity из-за «singleTop» launchMethod.
BTW, если на шаге 3 я снова открываю приложение из ящика приложений, он отлично работает, переходит непосредственно в GridActivity.
Что мне не хватает?
MainActivity не разрушен, он вызывает StartActivity() в GridActivity и остается в живых. Он будет уничтожен только тогда, когда вы выйдете из приложения, нажав кнопку «Назад». Если это была проблема, тогда было бы неважно, открываю ли я приложение из ящика приложения или из «рабочего стола», но, как вы можете прочитать выше, это происходит только тогда, когда я открываю приложение из одного места, а затем открываю его снова из другого (первый раз из ящика приложения и второй раз с «рабочего стола» или наоборот) –
Я отредактировал свой ответ. Надеюсь, поможет. – Jim
Вы не знаете, как мне решить эту проблему? Создание GridActivity в качестве первого действия, а затем отображение MainActibity (SplashScreen) должно решить его? –