Android退出多个activity和单个activity的方法


在android单个的activity调用finish,killprocess(),system.exit()方法退出

多个Activity 在2.1之前,可以使用ActivityManager的RestartPackage方法,它可以直接结束整个应用,在使用时需要权限android.permission.RESTARTPACKAGES,在2.2这个方法失效了,新添加了一个方法,killBackgroundProcesses().需要权限android.permission.KILLBACKGTOUND_PROCESSE。不过以上的两个方法据说都没有实际的作用。我也没有实验,我用的是另一种网上提供的方式。就是将所有的activity放入到一个list中,然后在需要退出的时候,将所有的activity,finish掉。

具体的代码如下:

首先是自定义application,写一个单例,保证只有一个application实例。

MyApplication.java 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class MyApplication extends Application {
     private List<Activity> activityList = new LinkedList<Activity>();
     private static MyApplication instance;
  
     public MyApplication() {
         super ();
     }
  
     // 单例模式中获取唯一的MyApplication实例
     public static MyApplication getInstance() {
         if ( null == instance) {
             instance = new MyApplication();
         }
         return instance;
     }
  
     // 添加Activity到容器中
     public void addActivity(Activity activity) {
         activityList.add(activity);
     }
  
     // 遍历所有Activity并finish
     public void exit() {
         for (Activity activity : activityList) {
             activity.finish();
         }
         System.exit( 0 );
     }
  }
在你的AndroidManifest.xml把application根标签的name改成自定的名字。然后在每个 activity的onCreate方法中,调用 MyApplication.getInstance().addActivity(this)。在需要退出整个应用的时候调用 MyApplication.getInstance().exit()方法即可。

你可能感兴趣的:(Android退出多个activity和单个activity的方法)