Отображение главного меню / главного экрана приложения при возврате в приложение после запуска внешней операции / намерения - PullRequest
5 голосов
/ 16 марта 2010

Я запускаю Android Market через свое приложение для поиска похожих продуктов по этому коду:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://market.android.com/search?q=pub:\"some txt\""));
c.startActivity(intent);

Это прекрасно работает для показа похожих продуктов. Тем не менее, если я нажму кнопку «Домой» во время работы на рынке, то при повторном открытии приложения оно по-прежнему показывает результаты рынка. В этом случае я хочу перейти в главное меню.

Есть ли решение?

Ответы [ 3 ]

15 голосов
/ 16 марта 2010

Извините, FLAG_ACTIVITY_NO_HISTORY, вероятно, не является правильным решением. Обратите внимание на семантику этого - активность просто не появляется в истории. Таким образом, если пользователь нажимает на одну из вещей в нем, чтобы перейти к следующему действию, а затем, нажав назад, он не вернется к предыдущему (но к предыдущему). Это редко то, что вы хотите.

Хуже того, если они перейдут ко второму действию из рыночного действия, нажмут кнопку домой и вернутся к вашему приложению, второе действие все еще будет там (оно сохраняется в истории).

Правильный флаг для этой ситуации: FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET .

10 голосов
/ 16 марта 2010

Если вы добавите флаг 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 лучше подходит для того, что вам нужно.

0 голосов
/ 16 марта 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...