在 Android 5.0 上禁用最近的任务按钮

Disable recent tasks button on Android 5.0

我正在开发一个应用程序,它需要像在 Toddler Lock 应用程序中那样禁止显示最近使用的应用程序按钮。我想要的是用户不能通过按最近使用的应用程序按钮退出我的应用程序。

在幼儿锁定 (https://play.google.com/store/apps/details?id=marcone.toddlerlock&hl=en) 中,只要您按下最近使用的应用程序按钮,屏幕就会闪烁一点,但应用程序 return 会自动闪烁 activity。即使我们快速连续多次按下最近使用的应用程序按钮并设法在几毫秒后显示最近使用的应用程序屏幕,应用程序 return 也会显示它自己的 activity.

我知道一定有一些幕后服务,但我不能完全弄清楚。

谁能告诉我 Toddler Lock 应用程序如何设法抑制最近使用的应用程序按钮。我需要在我的应用程序中实现完全相同的行为。

我尝试了下面 link 中给出的答案: Altering the result of getRecentTasks

android intercept recent apps button 但这些不适用于 Android Lollipop。

如果有办法在我的应用程序中使用主屏幕执行此操作,请也考虑一下。

你必须编写一个服务来持续监控顶部 activity。如果顶部 activity 来自包 com.android.systemui 意味着用户按下了最近的应用程序按钮。所以此时你已经从你的应用程序中维护了顶部 activity 并再次启动相同的 activity。

最后我通过以下方式实现了这一目标:

@Override
protected void onPause() {
super.onPause();

ActivityManager activityManager = (ActivityManager) getApplicationContext()
        .getSystemService(Context.ACTIVITY_SERVICE);

activityManager.moveTaskToFront(getTaskId(), 0);

}

需要许可...

<uses-permission android:name="android.permission.REORDER_TASKS" />