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

时间:2017-07-21 23:03:20

标签: android kiosk android-screen-pinning

我正在使用Activity.startLockTask(),并注意到如果我将屏幕固定在活动A中,我将无法转换为活动B.似乎我必须startLockTask()然后{{1}然后在活动B上再次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();
    }
}

1 个答案:

答案 0 :(得分:2)

这个问题是一个难以处理的问题,但解决方案非常简单。对于遇到同样问题的其他人,您所要做的就是将launchMode更改为单个任务。一旦我更新了我的Manifest,我就可以在无缝更改活动时保持固定状态。

android:launchMode="singleTask"