应用退出,关闭所有的activity

1.自定义一个application,并将所有的activity装入activitylist里面,在 AndroidManifest.xml中注册 <application android:name=".ExitAll"></application>

[java]  view plain copy
  1. package com.dragon;  
  2.   
  3. import java.util.LinkedList;  
  4. import java.util.List;  
  5.   
  6. import android.app.Activity;  
  7. import android.app.Application;  
  8.   
  9. public class ExitAll extends Application {  
  10.   
  11.     private List<Activity> activityList = new LinkedList<Activity>();  
  12.     private static ExitAll instance;  
  13.   
  14.     private ExitAll() {  
  15.     }  
  16.   
  17.     // 单例模式中获取唯一的MyApplication实例  
  18.     public static ExitAll getInstance() {  
  19.         if (null == instance) {  
  20.             instance = new ExitAll();  
  21.         }  
  22.         return instance;  
  23.     }  
  24.   
  25.     // 添加Activity到容器中  
  26.     public void addActivity(Activity activity) {  
  27.         activityList.add(activity);  
  28.     }  
  29.   
  30.     // 遍历所有Activity并finish  
  31.     public void exit() {  
  32.           
  33.           
  34.                 for (Activity activity : activityList) {  
  35.                     activity.finish();  
  36.                       
  37.                 }  
  38.       
  39.                 System.exit(0);  
  40.               
  41.             }  
  42.   
  43.     @Override  
  44.     public void onCreate() {  
  45.         // TODO Auto-generated method stub  
  46.     System.out.println("ExitAll创建");  
  47.         super.onCreate();  
  48.     }  
  49.   
  50. }  

2.在每一个activity加入

[java]  view plain copy
  1. ExitAll.getInstance().addActivity(OneActivity.this);            //当前activity  

3.在想结束的activity中加入

[java]  view plain copy
  1. ExitAll ea=ExitAll.getInstance();  


一般来说,在Android退出时,有的Activity可能没有被关闭。为了在Android退出时关闭所有的Activity,这里给出了以下的类:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//关闭Activity的类
public class CloseActivityClass{ 
   
   public static List<Activity> activityList = new ArrayList<Activity>();
   
   public static void exitClient(Context ctx)
   {
    // 关闭所有Activity
    for ( int i = 0 ; i < activityList.size(); i++)
    {
      if ( null != activityList.get(i))
      {
        activityList.get(i).finish();
      }
    }
    ActivityManager activityMgr = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE );
    activityMgr.restartPackage(ctx.getPackageName());
    System.exit( 0 );
   }
}

然后在应用中每一个Activity的onCreate(Bundle savedInstanceState)方法中增加一句:


1
CloseActivityClass.activityList.add( this );

在应用退出时:


1
CloseActivityClass.exitClient(MainActivity. this );

这样,当退出应用时就可以将该应用的所有Activity彻底关闭。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值