Activity.startLockTask() из одного занятия в другое

Я использую Activity.startLockTask() и заметил, что если я прикреплю экран в Занятии A, я не смогу перейти в Занятие B. Кажется, что мне нужно startLockTask() а потом stopLockTask() а потом startLockTask() снова на занятии Б.

Есть ли способ лучше справиться с этим, чтобы я мог закрепить приложение целиком, независимо от того, в каком я виде деятельности?

Вот как я прикрепляю приложение:

// start lock task mode if it's not already active
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// ActivityManager.getLockTaskModeState api is not available in pre-M
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
    if (!am.isInLockTaskMode()) {
        startLockTask();
    }
} else {
    if (am.getLockTaskModeState() == ActivityManager.LOCK_TASK_MODE_NONE) {
        startLockTask();
    }
}

Вот так я перестаю прикалывать

stopLockTask()

1 ответ

Решение

Эта проблема сложная для решения, но решение очень простое. Для тех, кто сталкивается с той же проблемой, все, что вам нужно сделать, это изменить свой launchMode на одну задачу. После того, как я обновил свой Манифест, я смог остаться на месте, при этом плавно меняя Действия.

android:launchMode="singleTask"
Другие вопросы по тегам