Подтвердить что ты не робот

Android build in store ведет себя иначе, чем apk, установленный через USB

У меня очень запутанная проблема. Я создал окончательный выпуск APK моего приложения, отправил его в Play Store и установил на своем тестовом устройстве. Приложение имеет разные режимы запуска, когда я устанавливаю его таким образом.

Мой сгенерированный APK является продуктом сборки Gradle, хотя и Proguard, и zipalign. Для простоты объяснения, скажем, мое приложение представляет собой приложение типа панели инструментов, основное действие которого показывает кнопку запуска для активности B. Я взял этот выпуск APK и установил его на свое устройство через USB 'adb install', поэтому я сравниваю точный APK с двумя различными способами установки.

Метод USB:. Когда пользователь нажимает кнопку в основной операции для запуска Activity B, запускается Activity B и отображается на экране. Если пользователь нажимает кнопку "домой" (получает вызов и т.д.), А затем возвращается в приложение, активность B все еще отображается. Это желаемое (И ОЖИДАЕМОЕ) поведение.

Метод сохранения: Загрузка APK из магазина и установка/запуск снова показывают основное действие. Когда кнопка нажата, снова активируется действие B. Теперь, когда пользователь удаляется домой и возвращается, задний стек, по-видимому, очищается, и основное действие отображается снова.

Я не указываю какие-либо специальные режимы запуска в манифесте, поэтому все действия являются стандартными. Как метод установки может повлиять на такую ​​вещь!? Это сводит меня с ума. Кто-нибудь знает, почему это может произойти?

4b9b3361

Ответ 1

У меня была такая же проблема, и это сработало для меня. Явно задайте startMode в элементе активности манифеста.

android:launchMode="singleTop"

"Если экземпляр действия уже существует в верхней части целевой задачи, система перенаправляет намерение на этот экземпляр посредством вызова его метода onNewIntent() вместо создания нового экземпляра действия."

Подробнее см. документацию и пояснения: http://developer.android.com/guide/topics/manifest/activity-element.html