【问题标题】:Clear task when lock task mode enabled启用锁定任务模式时清除任务
【发布时间】:2019-07-29 06:29:36
【问题描述】:

在我的 Android 应用程序的某个时刻,我需要清除当前任务并开始一个新活动。

我通常通过在提供给 Context.startActivity() 的意图中使用 FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TASK 标志来做到这一点。

但是我注意到,当应用被固定(即lock task mode 已启用)时它不起作用。

显然,我可以在清除任务之前停止锁定任务模式并在之后重新启动它,但是它会重新显示与应用固定相关的弹出窗口和 toast,从而给用户带来不好的体验。

是否可以在启用锁定任务模式时以某种方式在清除任务中启动活动?

【问题讨论】:

  • 我认为这是不可能的。您可以在 ActivityManagerService - link 中找到负责它的代码

标签: android


【解决方案1】:

根据文档,只有一种方法可以做到这一点。

如果一个activity之前调用了startLockTask(),那么这个activity 可以调用 Activity.stopLockTask() 来停止锁任务模式。这种方法 仅适用于启动锁定任务模式的活动。

您需要通过DevicePolicyManager.setLockTaskPackages()停止锁定任务才能将应用从白名单中删除。

【讨论】:

  • 其实我正在寻找一个不停止锁定任务模式的解决方案。
  • 恐怕目前没有办法,因为它是为锁定模式设计的。
【解决方案2】:

改进业务逻辑,无需启动新的Activity -

因为问题是:在给定的情况下,为什么甚至需要这样做?

在大多数情况下替换 Fragment 就足够了,除非切换 Locale


如果只有启动锁定任务的Activity 能够解锁它 -

这仍然可以通过实现 interface 来完成,它就是这样做的

(显然,我假设这个 Activity 仍在运行)。

【讨论】:

    猜你喜欢
    • 2019-11-21
    • 2014-02-27
    • 2015-11-20
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    相关资源
    最近更新 更多