继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

AppManager类,管理Activity和App

一只斗牛犬
关注TA
已关注
手记 531
粉丝 50
获赞 300

直接两段代码:


  1. @Override  

  2. protected void onCreate(Bundle savedInstanceState) {  

  3.     super.onCreate(savedInstanceState);  

  4.     // 添加Activity到堆栈  

  5.     AppManager.getAppManager().addActivity(this);  

  6. }  

  7.   

  8. @Override  

  9. protected void onDestroy() {  

  10.     super.onDestroy();  

  11.     // 结束Activity&从堆栈中移除  

  12.     AppManager.getAppManager().finishActivity(this);  

  13. }  


  1. package net.oschina.app;  

  2.   

  3. import java.util.Stack;  

  4.   

  5. import android.app.Activity;  

  6. import android.app.ActivityManager;  

  7. import android.content.Context;  

  8.   

  9. /** 

  10.  * 应用程序Activity管理类:用于Activity管理和应用程序退出 

  11.  * @author liux (http://my.oschina.net/liux) 

  12.  * @version 1.0 

  13.  * @created 2012-3-21 

  14.  */  

  15. public class AppManager {  

  16.       

  17.     private static Stack<Activity> activityStack;  

  18.     private static AppManager instance;  

  19.       

  20.     private AppManager(){}  

  21.     /** 

  22.      * 单一实例 

  23.      */  

  24.     public static AppManager getAppManager(){  

  25.         if(instance==null){  

  26.             instance=new AppManager();  

  27.         }  

  28.         return instance;  

  29.     }  

  30.     /** 

  31.      * 添加Activity到堆栈 

  32.      */  

  33.     public void addActivity(Activity activity){  

  34.         if(activityStack==null){  

  35.             activityStack=new Stack<Activity>();  

  36.         }  

  37.         activityStack.add(activity);  

  38.     }  

  39.     /** 

  40.      * 获取当前Activity(堆栈中最后一个压入的) 

  41.      */  

  42.     public Activity currentActivity(){  

  43.         Activity activity=activityStack.lastElement();  

  44.         return activity;  

  45.     }  

  46.     /** 

  47.      * 结束当前Activity(堆栈中最后一个压入的) 

  48.      */  

  49.     public void finishActivity(){  

  50.         Activity activity=activityStack.lastElement();  

  51.         finishActivity(activity);  

  52.     }  

  53.     /** 

  54.      * 结束指定的Activity 

  55.      */  

  56.     public void finishActivity(Activity activity){  

  57.         if(activity!=null){  

  58.             activityStack.remove(activity);  

  59.             activity.finish();  

  60.             activity=null;  

  61.         }  

  62.     }  

  63.     /** 

  64.      * 结束指定类名的Activity 

  65.      */  

  66.     public void finishActivity(Class<?> cls){  

  67.         for (Activity activity : activityStack) {  

  68.             if(activity.getClass().equals(cls) ){  

  69.                 finishActivity(activity);  

  70.             }  

  71.         }  

  72.     }  

  73.     /** 

  74.      * 结束所有Activity 

  75.      */  

  76.     public void finishAllActivity(){  

  77.         for (int i = 0, size = activityStack.size(); i < size; i++){  

  78.             if (null != activityStack.get(i)){  

  79.                 activityStack.get(i).finish();  

  80.             }  

  81.         }  

  82.         activityStack.clear();  

  83.     }  

  84.     /** 

  85.      * 退出应用程序 

  86.      */  

  87.     public void AppExit(Context context) {  

  88.         try {  

  89.             finishAllActivity();  

  90.             ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);  

  91.             activityMgr.restartPackage(context.getPackageName());  

  92.             System.exit(0);  

  93.         } catch (Exception e) { }  

  94.     }  

原文链接:http://www.apkbus.com/blog-847095-68665.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP