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()方法即可。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值