Отображение главного меню/главного экрана приложения при возврате в приложение после запуска внешнего действия/намерения

StackOverflow https://stackoverflow.com/questions/2453398

  •  20-09-2019
  •  | 
  •  

Вопрос

Я запускаю 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); 

Редактировать: хакбод верно: FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET лучше подходит для того, что вам нужно.

Это не проблема.

Когда вы нажимаете «Домой» в приложении «Маркет», оно не закрывается, а просто приостанавливается.Поэтому, когда вы открываете его снова, вы возобновляете его.Проверять Жизненный цикл активности Android.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top