Android开发-自定义application对activity的管理与控制
2017-02-19 20:00
357 查看
自定义AppManager,在需要调用的地方实例化调用。
代码如下:
其中,对于Activity的管理统用也可以借助集合,将activity加入到集合中,定义addActivity,removeActivity,removeAllActivity等方法。移除全部进行高级For循环遍历集合,逐个移除。在一键退出程序记得调用System.exit();方法。
以上是开发项目时的一些心得,仅供参考。
代码如下:
/********************************************** * @类名: AppManager * * @描述: 应用程序Activity管理类:用于Activity管理和应用程序退出 * * @作者: DCL * * @创建日期: 2015-10-16 * * @版本: V1.0 * * @修订历史: * ***********************************************/ public class AppManager { private static Stack<Activity> activityStack; private static AppManager instance; private AppManager(){} /** * 单一实例 */ public static AppManager getAppManager(){ if(instance==null){ instance=new AppManager(); } return instance; } /** * 添加Activity到堆栈 */ public void addActivity(Activity activity){ if(activityStack==null){ activityStack=new Stack<Activity>(); } activityStack.add(activity); } /** * 获取当前Activity(堆栈中最后一个压入的) */ public Activity currentActivity(){ Activity activity=activityStack.lastElement(); return activity; } /** * 结束当前Activity(堆栈中最后一个压入的) */ public void finishActivity(){ Activity activity=activityStack.lastElement(); finishActivity(activity); } /** * 结束指定的Activity */ public void finishActivity(Activity activity){ if(activity!=null){ activityStack.remove(activity); activity.finish(); activity=null; } } /** * 结束指定类名的Activity */ public void finishActivity(Class<?> cls){ if (null!=cls) { for (Activity activity : activityStack) { if(activity.getClass().equals(cls) ){ finishActivity(activity); } } } } /** * 结束所有Activity */ public void finishAllActivity(){ for (int i = 0, size = activityStack.size(); i < size; i++){ if (null != activityStack.get(i)){ activityStack.get(i).finish(); } } activityStack.clear(); } /** * 退出应用程序 */ public void AppExit(Context context) { try { finishAllActivity(); ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); activityMgr.restartPackage(context.getPackageName()); System.exit(0); android.os.Process.killProcess(android.os.Process.myPid()); } catch (Exception e) { } } }
其中,对于Activity的管理统用也可以借助集合,将activity加入到集合中,定义addActivity,removeActivity,removeAllActivity等方法。移除全部进行高级For循环遍历集合,逐个移除。在一键退出程序记得调用System.exit();方法。
以上是开发项目时的一些心得,仅供参考。
相关文章推荐
- 朝花夕拾-android 自定义application 管理activity的生命周期
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- android 如何让自己开发的Application,能适应主题管理(ThemeManager)中的各种主题风格?
- Android官方开发文档Training系列课程中文版:管理Activity的生命周期之启动一个Activity
- 记录自学Android的笔记-自定义一个ActivityCollector类来管理所有活动和自定义BaseActivity作为所有活动的父类
- Android官方开发文档Training系列课程中文版:管理Activity的生命周期之Activity的重建
- Android 程式开发:(八)处理屏幕方向的变化 —— 8.4控制Activity的显示方向
- android开发之在activity中控制另一个activity的UI更新
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- Android开发实用技巧之四:自定义ActivityCollector来管理活动
- 自定义Activity栈来管理android的Activity
- Android开发之Activity管理
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- Android官方开发文档Training系列课程中文版:管理Activity的生命周期之暂停和恢复Activity
- 使用自定义的Activity栈来管理android的Activity
- 使用自定义的Activity栈来管理android的Activity
- android开发之在activity中控制另一个activity的UI更新
- Android开发中:如何判断某Application和Activity的存在性
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- Android官方开发文档Training系列课程中文版:管理Activity的生命周期之停止和重启Activity