我有一个针对儿童的应用程序,我不希望他们能够单击“最近使用的应用程序”按钮(看起来像两个矩形叠在一起的按钮)。我正在负责捕获后退按钮和主页按钮,并且我已经搜索并阅读了很多有关尝试捕获“最近的应用程序”按钮的信息,但大多数人说你不能,或者他们的做法非常值得怀疑。
如果您按下“最近使用的应用程序”按钮,“Kids Place”应用程序会弹出一个视图,显示“不允许操作”,并将您重定向到其主屏幕,即使您在不同的应用程序中,这也可以工作,那么他们是如何做到这一点的呢?
目前我找到的最佳解决方案如下:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (!hasFocus) {
windowCloseHandler.postDelayed(windowCloserRunnable, 0);
}
}
private void toggleRecents() {
Intent closeRecents = new Intent("com.android.systemui.recent.action.TOGGLE_RECENTS");
closeRecents.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
ComponentName recents = new ComponentName("com.android.systemui", "com.android.systemui.recent.RecentsActivity");
closeRecents.setComponent(recents);
this.startActivity(closeRecents);
}
private Handler windowCloseHandler = new Handler();
private Runnable windowCloserRunnable = new Runnable() {
@Override
public void run() {
ActivityManager am = (ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
if (cn != null && cn.getClassName().equals("com.android.systemui.recent.RecentsActivity")) {
toggleRecents();
}
}
}
这需要您使用 <uses-permission android:name="android.permission.GET_TASKS" />
使用此方法时,当用户按下最近使用的应用程序按钮时,将导致您的 Activity 将经历以下 Activity 生命周期:onPause -> onWindowFocusChanged -> onResume。
对于用户来说,行为似乎是按下最近使用的应用程序按钮没有响应。注意:我发现,如果您快速按下最近使用的应用程序按钮,它将短暂显示该视图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)