【原】android 程序退出代码

时间:2022-07-17 20:36:27

今天做了一个android小例子,发现使用finish()和system.exit(0)退出的时候,只能退出当前的activity。后来我查找了网站的一些说法,说调用下面的代码可以实现全部退出。但是我怎么用都不行。

ActivityManager activityMgr= (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);

activityMgr.restartPackage(getPackageName());

最后还需要添加这个权限才行:

<!-- 关闭应用程序的权限 -->
<uses-permission android:name="android.permission.RESTART_PACKAGES" />


后台,我新建了一个类SysExitUtil类:

   

 1 //建立一个public static的list用来放activity 
2 public static List activityList = new ArrayList();
3
4
5 //finish所有list中的activity
6 public static void exit(){
7 int siz=activityList.size();
8 for(int i=0;i<siz;i++){
9 if(activityList.get(i)!=null){
10 ((Activity) activityList.get(i)).finish();
11 }
12 }
13 }
14

 在每个activity初始化的时候,把activity添加到list里面。

  Const.activityList.add(Contacts.this);     

 

然后在需要退出的地方调用exit()方法。

 1 /**
2 * 提示对话框
3 * @param message
4 */
5 public void showCheckDialog(String message){
6 new AlertDialog.Builder(this)
7 .setTitle("温馨提示")
8 .setMessage(message)
9 .setPositiveButton("确定", new DialogInterface.OnClickListener(){
10 public void onClick(DialogInterface dialog, int which) {
11 //System.exit(0);
12 Const.exit();
13 }
14 })
15 .setNegativeButton("取消", new DialogInterface.OnClickListener() {
16 public void onClick(DialogInterface dialog, int which) {
17
18 }
19 })
20 .show();
21 }


这样就可以关闭掉所有的activity,退出程序。