- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个专为平板电脑设计的应用程序,在工作环境中,许多人会将相机作为日常工作的一部分。虽然主管离开应用程序是适当且必要的,但其他人应该很难不小心这样做。但是,很容易不小心长按主页键。我自己做过。这将显示最近的任务列表;用户可以点击其中的任何一个,然后他们就迷路了,因为其中一些并不像普通智能手机用户那样老练。
您可以通过 getRecentTasks 以编程方式检索此列表。我的问题是如何从该列表中删除除了最近的任务(我的)之外的所有任务,将长度减少到一个元素,或者更改列出的任务以指向我的应用程序。我知道这是可能的:Toddler Lock 做到了。
我的第一个尝试是修改返回的 Intent ,希望它们通过引用传递。没有这样的运气。还有其他想法吗?
(我说的不是短按 Home 键。我已经想通了,部分基于这里找到的东西。)
最佳答案
感谢 Toddler Lock 的作者,我与他讨论了这个问题。引入的错误完全是我的。
在您的 list 中创建一个禁用的 Activity ,其亲和性等于空字符串。在您的程序中,启用它,然后使用标记为 FLAG_ACTIVITY_NEW_TASK 的 Intent 启动它。会在最近的 Activity 中体现出来。禁用该任务,它就会从显示屏上消失。
这些足够了,你就会淹没最近的 Activity 显示。如果它有办法返回比您拥有的虚拟 Activity 更多的 Activity ,则用户将能够退出您的程序。
确保在退出时禁用这些任务,并确保如果您从最近的 Activity 中选择其中一项任务,您的程序会做一些合理的事情。
这是我的 list 中的两个任务的示例:
<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="" />
关于android - 改变 getRecentTasks 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6258980/
我有一个专为平板电脑设计的应用程序,在工作环境中,许多人会将相机作为日常工作的一部分。虽然主管离开应用程序是适当且必要的,但其他人应该很难不小心这样做。但是,很容易不小心长按主页键。我自己做过。这将显
更新 我已经在 1.6 AVD 和真正的 Droid Incredible 上试过了。两者都有相同的问题。 我需要获取最近任务的列表,但 ActivityManager.getRecentTasks(
目前,我发现通过 android 框架检索最近启动的应用程序历史记录的唯一方法是使用 ActivityManager.getRecentTasks()。 自从 Android 文档站点 UI 大修后,
我是一名优秀的程序员,十分优秀!