У меня есть два приложения, на которые я назову приложение A и приложение B. Приложение B - это приложение с одной задачей и обычно, если вы запустите это приложение с главного экрана и используйте кнопку «Назад», вы не сможете вернуться на главный экран. Теперь предположим, что приложение A необходимо вызвать приложение B с помощью намерения. Если пользователь затем использует кнопку «Назад» в приложении B, я действительно хочу, чтобы они вернулись в приложение A. Но поскольку я переопределяю кнопку «Назад», невозможно вернуться в приложение A с помощью кнопки «Назад».Запретить закрытие приложения SingleTask при возврате вызывающему приложению
Как я могу вернуться в приложение A, но убедитесь, что приложение B остается запущенным, если оно запущено, когда приложение A называется? Если приложение B не было запущено, когда приложение A назвало его, приложение B должно быть выключено (уничтожено) при нажатии кнопки «Назад».
Я использую Android 2,2
UPDATE:
Я попытался следующие:
@Override
public void onBackPressed()
{
try
{
if (this.returnToClient)
moveTaskToBack (true);
this.returnToClient = false;
}
catch (Exception ex)
{
}
}
Я установил returnToClient истинное значение, если активность запускается вызывающим приложение, проверив некоторые пачки данных который проходит.
Теперь, если я нажму кнопку «Назад», приложение B переместится на задний план, и приложение A появится на переднем плане. Выглядит неплохо. Теперь, если я нажимаю кнопку «Домой», а затем запускаю приложение «В», приложение «В» просто выбирает, где оно остановилось. Также хорошо. Теперь плохая часть. Если я долгое время нажимаю кнопку «Домой», чтобы открыть список истории, а затем нажать значок для приложения B, метод onNewIntent будет вызываться точно так же, как и с теми же данными, которые передаются, как если бы приложение A инициировало Мероприятия. Поэтому я предполагаю, что Android рассматривает запуск приложения с главного экрана, отличный от того, что он из списка History. Зачем? Понятия не имею. Кажется, что история связана с , кто запустил последнее действие и сохраняет данные пакета как часть этой истории. Это странно, и это приводит к нежелательному поведению, при котором приложение B выглядит так, как будто его вызвали из приложения A.
Смотрите мое ОБНОВЛЕНИЕ в исходном посте. Я не верю, что ваше решение будет работать, потому что приложение B не должно запускать экземпляр приложения A. Приложение A предоставляется другими (а не мной) и может привести к созданию новых экземпляров, чего вы не хотите. – AndroidDev
Проверьте, есть ли намерение после длинного нажатия 'FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY'. Возможно, вы можете использовать это, чтобы различать случаи. –
Сочетание моего решения выше и проверка на FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY. – AndroidDev