Android 完全退出程序

1.使用ActivityManager彻底退出程序

   (1) android 2.2之前的room用:

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

   需要声明权限

  
  
  
  
  1. <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测试不能用)
 
  
  
  
  
  1. ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
  2. am.killBackgroundProcesses("cn.com.android123.cwj");   // API Level至少为8才能使用 

  需要声明权限

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

测试可用:

  
  
  
  
  1. Intent startMain = new Intent(Intent.ACTION_MAIN); 
  2.                  startMain.addCategory(Intent.CATEGORY_HOME); 
  3.                  startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
  4.                  startActivity(startMain); 
  5.                  System.exit(0); 

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

  代码:

  
  
  
  
  1. @Override 
  2.     protected void onResume() { 
  3.         if(IS_EXIT){ //静态变量,标识是否完全退出程序
  4.             finish(); 
  5.         }else
  6.             ... ...
  7.         } 
  8.         super.onResume(); 
  9.     } 

 

你可能感兴趣的:(android,移动开发,职场,休闲,退出程序)