@Override public void onBackPressed() { ResolveInfo launcherResolve=queryCurrentLauncher(); Intent intent=new Intent(); intent.addCategory(Intent.ACTION_MAIN); ComponentName componentName=new ComponentName(launcherResolve.activityInfo.packageName,launcherResolve.activityInfo.name); intent.setComponent(componentName); startActivitySafely(intent); } private void startActivitySafely(Intent intent){ try{ startActivity(intent); Toast.makeText(this, "切换到后台成功", Toast.LENGTH_SHORT).show(); }catch (Exception e){ Toast.makeText(this, "切换到后台失败", Toast.LENGTH_SHORT).show(); e.printStackTrace(); } } private ResolveInfo queryCurrentLauncher() { Intent launcherIntent = new Intent(Intent.ACTION_MAIN); launcherIntent.addCategory(Intent.CATEGORY_HOME); launcherIntent.addCategory(Intent.CATEGORY_DEFAULT); List<ResolveInfo> launcherInfoList = getPackageManager().queryIntentActivities(launcherIntent, PackageManager.MATCH_DEFAULT_ONLY); ResolveInfo launcherResolveInfo = null; ActivityManager activityManager = (ActivityManager) getSystemService(Service.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> tasks = activityManager.getRunningTasks(30); Iterator<ActivityManager.RunningTaskInfo> itInfo = tasks.iterator(); while (itInfo.hasNext()) { ActivityManager.RunningTaskInfo info = itInfo.next(); for (ResolveInfo resolveInfo : launcherInfoList) { String name1 = info.topActivity.getClassName(); String namme2 = resolveInfo.activityInfo.name; if (name1.equals(namme2)) { //获取当前使用的桌面 launcherResolveInfo = resolveInfo; return launcherResolveInfo; } } } return launcherResolveInfo; }