版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ceovip/article/details/82222056
按下任务物理键,会显示最近打开的App列表,可以用来切换多任务,如何通过代码来实现这种效果呢?
类似下面这样:
利用反射即可实现这个功能,示例代码如下:
private void showRecentApps() {
Class serviceManagerClass;
try {
serviceManagerClass = Class.forName("android.os.ServiceManager");
Method getService = serviceManagerClass.getMethod("getService",
String.class);
IBinder retbinder = (IBinder) getService.invoke(
serviceManagerClass, "statusbar");
Class statusBarClass = Class.forName(retbinder
.getInterfaceDescriptor());
Object statusBarObject = statusBarClass.getClasses()[0].getMethod(
"asInterface", IBinder.class).invoke(null,
new Object[] { retbinder });
Method clearAll = statusBarClass.getMethod("toggleRecentApps");
clearAll.setAccessible(true);
clearAll.invoke(statusBarObject);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}