您的位置:首页 > 移动开发 > Android开发

Android 完全退出程序

2011-03-28 10:22 281 查看
1.使用ActivityManager彻底退出程序

(1) android 2.2之前的room用:

ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
manager.restartPackage(getPackageName());

需要声明权限

<uses-permission android:name="android.permission.RESTART_PACKAGES"/>

这种方法会终止一切和这个程序包关联的,所有共享同一uid的process被kill,所有 的activity会被removed所有创建的服务会停止,还会发一个广播
Intent.ACTION_PACKAGE_RESTARTED
导致所有注册alarms 被stopped, notifications 被removed。
(2) android 2.2之后的room用:(2.2测试不能用)

ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
am.killBackgroundProcesses("cn.com.android123.cwj");   // API Level至少为8才能使用

需要声明权限

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

测试可用:

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
System.exit(0);

2. 声明一个静态变量,根据变量值在activity ,onResume方法里逐个调用finish方法。

代码:

@Override
protected void onResume() {
if(IS_EXIT){ //静态变量,标识是否完全退出程序

finish();
}else{
... ...
}
super.onResume();
}


本文出自 “学习笔记” 博客,请务必保留此出处http://maxuefeng.blog.51cto.com/1876326/528561
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: