【问题标题】:Empty (or fill) Recent Apps List清空(或填充)最近的应用程序列表
【发布时间】:2011-07-30 11:38:40
【问题描述】:

我开发了一个婴儿应用程序,我需要锁定应用程序的所有键和方法,以便能够将电话交给我的女儿。我使用“替换主屏幕”的方法来捕获主键,效果很好。所有其他硬键(电源按钮除外,但这不是问题,因为它无论如何都不容易按下)被锁定。但是经常讨论的长按主页键仍然是启动最近的应用程序并提供了一个出路(当然女儿几乎立即找到了)。

我已经看到市场上的其他应用程序(幼儿锁等)通过清空最近的应用程序列表(或用一个指向婴儿应用程序的图标填充它)来解决这个问题,但我不知道如何完成这。有人有解决方案吗?如何从我的应用程序中填写最近的应用程序?幼儿锁甚至会在锁应用退出后重置最近的应用。

【问题讨论】:

    标签: java android locking homescreen


    【解决方案1】:

    您可以在应用程序中创建一个不执行任何操作的活动,并以设置了 FLAG_ACTIVITY_NEW_TASK 标志的意图启动它。 触发这个意图,但是你需要多次填充历史(我的 Incredible 有 8 个点)。要重新填充历史记录,请查看 ActivityManager.RecentTaskInfo.getRecentTasks (int maxNum, int flags) See Documentation 看来您需要持有 GET_TASKS 权限

    最初触发这些应用程序的意图存储为 baseIntent,因此您应该能够自己存储它们(不要忘记附加内容),然后重新触发它们以重新填充历史列表。

    这是一个 hack,但它应该可以工作

    编辑:玩了一会儿之后,看起来你需要有 8 个不同的活动才能使这种方法起作用,这是不现实的。

    【讨论】:

    • 我在清单和类中添加了三个新活动:StartActivity、DummyActivity1、DummyActivity2 和 MainAcitivty。我从 StartActivity 开始,使用标记新任务集启动 dummy1,然后从 dummy1 启动 dummy2,最后从 dummy2 启动 main。长按home时最近的应用列表中没有新图标...我需要在清单中以特殊方式声明活动吗?
    • 我假设所有活动都在开始。你有没有:清单?
    【解决方案2】:

    您需要执行 Mobius 帖子中描述的操作,但还要在 android 清单文件中的虚拟活动元素上设置 android:taskAffinity=""。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-27
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      相关资源
      最近更新 更多