Android Q: запускается фоновая активность

https://developer.android.com/preview/privacy/background-activity-starts

Работает на Android Q, запускает активность из фона.

Приложения, работающие на Android Q, могут начинать действия только при выполнении одного или нескольких из следующих условий:

«У приложения есть активность в заднем стеке задачи переднего плана».

Может ли кто-нибудь объяснить, что здесь означает «задача переднего плана», на примере.

Спасибо


person NitZRobotKoder    schedule 28.08.2019    source источник
comment
См. developer.android.com/guide/components/activities/ для объяснения задач и их обратного стека.   -  person Michael    schedule 28.08.2019


Ответы (2)


«Задача переднего плана» - это задача, которая содержит Activity, который в настоящее время отображается на экране (то есть: видимый Activity).

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

Вот (гипотетический) пример:

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

PhotoViewerMainActivity->PhotoViewerPhotoActivity->MemeMakerActivity->EmailComposerActivity

Текущий, самый верхний доступный для просмотра Activity - это EmailComposerActivity, который вы можете видеть на экране. Остальные действия описаны в видимой области Activity.

Любой код, принадлежащий приложению PhotoViewer, приложению MemeMaker или EmailComposer, может запускать Activity в соответствии с правилами Android Q.

Если вы теперь нажмете кнопку HOME, «задача переднего плана» будет перемещена на задний план, и действия в ней больше не будут «в заднем стеке задачи переднего плана».

person David Wasser    schedule 28.08.2019
comment
Спасибо за ясный вариант использования! Мое понимание было правильным! Желаю, чтобы документ Google был более дружелюбным :) - person NitZRobotKoder; 29.08.2019

У приложения есть активность в заднем стеке задачи переднего плана.

Это означает, что ваше приложение буквально имеет Activity на заднем плане задачи переднего плана. Итак, если вы посмотрите на свою текущую активность, если вы нажмете «назад» и вытащите backstack, Activity будет там (вместо того, чтобы быть вашим самым верхним действием в стеке и, следовательно, «выходом» из вашего приложения, когда вы нажимаете назад)

Чтобы лучше понять эту фразу, вам необходимо ознакомиться с Управление стеком задач Android;)

Удачи.

person Martin Marconcini    schedule 28.08.2019
comment
task = Стек действий .. У меня есть приложение Cordova только с 1 действием, может ли оно когда-либо иметь задачу на переднем плане? Можете ли вы подробнее рассказать о задаче переднего плана, откуда можно запустить действие? - person NitZRobotKoder; 28.08.2019
comment
Задача - это одно или несколько действий в стопке. Подумайте о куче вещей. Вы кладете одно на другое. Но у вас может быть более одной задачи (стопки) мероприятий. Это означает, что вы можете вернуться к предыдущему заданию (стопке) или выбрать переход к другой стопке. Вам действительно нужно прочитать приведенную выше ссылку. все это более подробно объясняется в официальной документации Android. Ответ Дэвида также дает пример. Если у вас есть только 1 действие и оно видно, то это задача переднего плана. - person Martin Marconcini; 28.08.2019