3

我有一个专为工作场所中的平板电脑设计的应用程序,许多人会在日常工作中使用相机。虽然主管离开应用程序是适当且必要的,但其他人应该很难不小心这样做。但是,长按主页键很容易意外。我自己做过。这会列出最近的任务;用户可以点击其中任何一个,但他们会迷路,因为其中一些不像普通的智能手机用户那么复杂。

以编程方式,您可以通过 getRecentTasks 检索此列表。我的问题是如何从该列表中删除除最近的任务(我的)以外的所有任务,将长度减少到一个元素,或者将列出的任务更改为指向我的应用程序。我知道这是可能的:Toddler Lock 做到了。

我的第一次尝试是修改返回的意图,希望它们通过引用传递。没有这样的运气。还有其他想法吗?

(我不是在谈论短按主页键。我已经想出了一个,部分基于这里找到的东西。)

4

2 回答 2

4

归功于 Toddler Lock 的作者,我曾与他讨论过这个问题。引入的错误完全是我的。

在您的清单中创建一个禁用的活动,其亲和力等于空字符串。在您的程序中,启用它,然后使用标记为 FLAG_ACTIVITY_NEW_TASK 的意图启动它。它会在最近的活动中出现。禁用该任务,它就会从显示屏上消失。

做足够的这些,你会淹没最近的活动显示。如果它有办法返回比您拥有的虚拟活动更多的活动,那么用户将能够退出您的程序。

确保在退出时禁用任务,并确保如果您从最近的活动中选择其中一项任务,您的程序会执行一些合理的操作。

这是我清单中两个任务的示例:

    <activity android:name="com.foo.android.recentactivity.Clear1"
              android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
              android:label="."
              android:enabled="false"
              android:icon="@drawable/clearicon"
              android:taskAffinity="" />
    <activity android:name="com.foo.android.recentactivity.Clear2"
              android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
              android:label="."
              android:enabled="false"
              android:icon="@drawable/clearicon"
              android:taskAffinity="" />
于 2011-06-16T16:51:46.793 回答
1

您不能从应用程序中执行此操作。您需要构建具有所需行为的自定义系统映像。

于 2011-06-06T23:06:35.937 回答