结束activity的方法归类
- 调用finish()方法:
1. this_activity.this.finis();//this_activity是你要关闭的activity的名称
2.调用killProcess()方法:
android.os.Process.killProcess(android.os.Process.myPid());
3.调用Java 的 exit(int code) 方法可以退出程序
Runtime.getRuntime().exit(code);
4,调用activity生命周期的方法如onStop()、onDestroy()
System.exit(int);
onDestroy();
5.调用 restartPackage方法
int currentVersion = android.os.Build.VERSION.SDK_INT;
if (currentVersion > android.os.Build.VERSION_CODES.ECLAIR_MR1) {
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 {
// android2.1
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
}
需要注意的是调用restartPackage方法是需要取得系统的权限:
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
注意:第五种方法在API18后,不可用
重点:
- finish():结束当前Activity,不会立即释放内存。遵循android内存管理机制。
- exit():结束当前组件如Activity,并立即释放当前Activity所占资源。
- killProcess():结束当前组件如Activity,并立即释放当前Activity所占资源。
- restartPackage():结束整个App,包括service等其它Activity组件。