onDestroy() вызывается в случае «singleTask»?

#android #back-stack

#Android #обратный стек

Вопрос:

У меня есть приложение, в котором я сталкиваюсь с этой проблемой. Это точечная версия сценария.

У меня есть 2 действия A и B. Оба заданы singleTask . Всякий раз, когда вы создаете экземпляр singleTask действия, для него создается новая задача.

введите описание изображения здесь

Итак, если я это сделаю A -> B -> A , onDestroy() вызывается действие B, но, согласно документации, оно должно создать только один экземпляр для singleTask and SingleInstance , тогда зачем вызывать onDestroy() ?

Теперь у меня есть два вопроса

  1. Являются ли действия A и B для двух отдельных задач или внутри одной задачи?
  2. Я хочу позвонить A -> B -> A и избежать onDestroy() вызова действия B. Возможно ли это?

Ответ №1:

После долгих исследований я сам нашел ответ

Являются ли действия A и B для двух отдельных задач или внутри одной задачи?

Да, действие A и действие B относятся к двум разным задачам.

Я хочу вызвать A -> B -> A и избежать вызова onDestroy() действия B. Возможно ли это?

Да, это возможно. Вызывая finish() действие A во время перехода к действию B, этого можно достичь.

Примечание: хотя вызов finish() не является хорошим вариантом, это просто обходной путь, который подходит для моего сценария.