1,设置去监听后退的按键方法 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { boolean taskRoot = isTaskRoot(); Log.d("myapp", taskRoot + ""); if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() ==KeyEvent.ACTION_DOWN) { if ((System.currentTimeMillis() - exitTime) > 2000) { Toast.makeText(getApplicationContext(), "再按一次退出到后台", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { // finish(); // System.exit(0); appContext.isbackup=true;//用个全局变量设置个标志,第二步去使用 boolean b = moveTaskToBack(true);//退出到后台,这个方法可能会失效 Log.d("myapp",b+""); // Intent intent = new Intent(Intent.ACTION_MAIN); // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // intent.addCategory(Intent.CATEGORY_HOME); // startActivity(intent); } return true; } return super.onKeyDown(keyCode, event); }
2,再App的启动页面
boolean taskRoot = isTaskRoot(); // if (!this.isTaskRoot()) {//这个方法再某些手机上可能无效,永远返回ture,把这个方法用个变量代替,用下面一行的全局变量代替 if (application.isbackup == true) { Intent mainIntent = getIntent(); String action = mainIntent.getAction(); if (mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) { finish(); return; } } // }