在2.2以前,也就是API-8以前,用这个方法关闭程序:
ActivityManager manager = (ActivityManager) getSystemService(Context.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.2以后,我们就要用新的方法:
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);manager.killBackgroundProcesses(this.getPackageName());

需要声明权限
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

这个和上面的效果一样的。

一个完整的关闭方法:
/** * 完全退出程序,需要增加权限! <uses-permission * android:name="android.permission.RESTART_PACKAGES"/> <uses-permission * android:name="android.permission.KILL_BACKGROUND_PROCESSES"/> */protected void exitProgram() {finish();ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);int sdk = Build.VERSION.SDK_INT;if (sdk < 8) {activityManager.restartPackage(getPackageName());} else {activityManager.killBackgroundProcesses(getPackageName());}System.exit(0);}

更多相关文章

  1. 一个hello程序的android内核模块编译方法及在模拟器中进行测试结
  2. Android实现计时与倒计时(限时抢购)的几种方法(线程)
  3. Android 获取网络图片方法
  4. android 游戏 Canvas 常用方法
  5. Android 保留两位小数点的4种方法

随机推荐

  1. ubuntu下编译JNI程序
  2. android判断文件类型是否为音频文件
  3. Android(安卓)Sqlite数据库转义字符模糊
  4. mysql数据库忘记管理员密码的解决方法
  5. Centos7安装和配置Mysql5.7
  6. mysql免安装版配置与修改密码的教程
  7. Linux系统中MySQL的常用操作命令
  8. MySQL5.7完全卸载步骤详解
  9. 详解MySQL中InnoDB的存储文件
  10. 优化 MySQL 3 个简单的小调整