我有一个专为平板电脑设计的应用程序,在工作场所设置中,许多人将使用相机作为日常工作的一部分。虽然主管离开应用程序是合适和必要的,但其他人偶然难以这样做。但是,长按主页键很容易意外。我自己做了。这列出了最近的任务清单;用户可以点击其中任何一个而丢失,因为其中一些并不像普通智能手机用户那样复杂。
以编程方式,您可以通过getRecentTasks检索此列表。我的问题是如何从该列表中删除除最近的任务(我的)以外的所有任务,将长度减少到只有一个元素,或者将列出的任务更改为指向我的应用程序。我知道这是可能的:Toddler Lock做到了。
我的第一次尝试是修改返回的意图,希望它们通过引用传递。没有这样的运气。还有其他想法吗?
(我不是在谈论短按主页键。我已经找到了一个,部分基于此处找到的东西。)
答案 0 :(得分: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="" />
答案 1 :(得分:1)
您无法从应用程序执行此操作。您需要使用所需的行为构建自定义系统映像。