Я запускаю Android Market с помощью своего приложения для поиска аналогичных продуктов с помощью этого кода:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://market.android.com/search?q=pub:\"some txt\""));
c.startActivity(intent);
Это хорошо работает для показа аналогичных продуктов. Однако, если я нажал кнопку "Домой", в то время как на рынке, когда я вновь открыл приложение, оно все еще показывает результаты рынка. Я хочу войти в главное меню в этом случае.
Существует ли решение?
Извините, FLAG_ACTIVITY_NO_HISTORY
, вероятно, не является правильным решением. Обратите внимание на семантику - активность просто не появляется в истории. Таким образом, если пользователь нажмет на одну из вещей в ней, чтобы перейти к следующей активности, а затем нажмет назад, он вернется не к предыдущей (а к предыдущей). Это редко то, чего вы хотите.
Хуже того, если они перейдут ко второму действию из рыночного действия, нажмут кнопку домой и вернутся в ваше приложение, второе действие все еще будет там (оно сохраняется в истории).
Правильный флаг для этой ситуации - FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET.
Если вы добавите флаг FLAG_ACTIVITY_NO_HISTORY
к намерению, он не будет храниться в стеке истории. Когда пользователь возвращается к вашему приложению, будет показано последнее действие, которое было видно перед запуском торговой площадки.
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://market.android.com/search?q=pub:\"some txt\""));
c.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
c.startActivity(intent);
Правка: hackbod правильный: FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
лучше подходит для того, что вам нужно.
Это не проблема.
Когда вы нажимаете кнопку «Домой» в приложении «Маркет», оно не закрывается, а просто приостанавливается. Поэтому, когда вы открываете его снова, вы возобновляете его. Проверьте жизненный цикл активности Android .