Activity.startLockTask() 从一个 Activity 到另一个 Activity

Activity.startLockTask() from one Activity to another Activity

我正在使用 Activity.startLockTask() 并注意到如果我将屏幕固定在 Activity A 中,我将无法转换到 Activity B。看来我必须 startLockTask() 然后 stopLockTask() 然后 startLockTask() 在 Activity B.

有没有更好的方法来处理这个问题,这样我就可以固定整个应用程序,而不管 Activity 我在做什么?

这是我固定应用程序的方式:

// 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()

这个问题比较难处理,但是解决方法很简单。对于面临同样问题的任何其他人,您所要做的就是将启动模式更改为单一任务。一旦我更新了我的清单,我就能够在无缝更改活动的同时保持固定状态。

android:launchMode="singleTask"