finish()只能结束当前界面,执行后会显示上一界面。
对于有多个界面的应用程序,如何退出?
下面是摘自csdn论坛的一段代码,如下:
int sdk_Version = android.os.Build.VERSION.SDK_INT; if (sdk_Version >= 8) { Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); System.exit(0); } else if (sdk_Version < 8) { ActivityManager activityMgr = (ActivityManager) getSystemService(ACTIVITY_SERVICE); activityMgr.restartPackage(getPackageName()); }
public void ConfirmExit() { AlertDialog.Builder ad = new AlertDialog.Builder( this ); ad.setTitle("退出" ); ad.setMessage("是否退出软件?" ); ad.setPositiveButton("是" , new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int i) { int sdk_Version = android.os.Build.VERSION.SDK_INT; if (sdk_Version >= 8 ) { Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); System.exit(0 ); } else if (sdk_Version < 8 ) { ActivityManager activityMgr = (ActivityManager) getSystemService(ACTIVITY_SERVICE); activityMgr.restartPackage(getPackageName()); } } }); ad.setNegativeButton("否" , new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int i) { } }); ad.show(); }