Правильные намеренные флаги для возврата к последнему открытому действию независимо от принадлежности приложения - PullRequest
0 голосов
/ 29 ноября 2018

В майском приложении есть действие «AlertActivity», которое время от времени запускается из службы (воспринимайте это как сигнал тревоги).Пользователь может выбрать взаимодействие с этим сигналом тревоги или отменить его, если он / она занят.Когда пользователь отменяет действие, я завершаю его () и хочу, чтобы пользователь вернулся к действию, которое он в данный момент использовал (не обязательно из моего собственного приложения).

Я впервые начал с:

            Intent intent = new Intent(ctx, AlertActivity.class);

            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            //Note that Intent.FLAG_ACTIVITY_NEW_TASK is needed in order to call startActivity without an activity context

            startActivity(intent);

Используя этот подход, AlertActivity завершает работу с самым последним используемым действием из моего приложения вместо последнего открытого действия из любого приложения перед предупреждением.

Следующее, что я попробовал, было:

            Intent intent = new Intent(ctx, AlertActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(intent);

, которое всегда заканчивается последним действием, которое НЕ принадлежит моему приложению, а это не то, что я хочу, если пользователь использовал действиеиз моего приложения до срабатывания оповещения.

Существует ли какая-либо комбинация флагов или любой другой прием, с помощью которого восстанавливается последнее использованное действие после завершения AlertActivity, независимо от того, принадлежит ли это действие моему приложению или нет

1 Ответ

0 голосов
/ 03 декабря 2018

<activity android:name=".AlarmActivity" android:launchMode="singleTask" android:taskAffinity="" android:excludeFromRecents="true"> </activity>

измените этот код на файл манифеста и проверьте результат.

...