Android中使用Activity管理类
来源:互联网 发布:如何开通淘宝视频直播 编辑:程序博客网 时间:2024/05/21 09:37
我的简书:简书
在日常的APP开发中,为了对APP中所有的Activity进行管理,所以统一放在Stack中处理。
- 创建AppManager:
public class AppManager { public static Stack<Activity> getActivityStack() { return activityStack; } private static Stack<Activity> activityStack; private static AppManager instance; private AppManager() { } /** * 单一实例 */ public static AppManager getInstance() { if (instance == null) { instance = new AppManager(); } return instance; } /** * 添加Activity到堆栈 */ public void addActivity(Activity activity) { if (activityStack == null) { activityStack = new Stack<>(); } activityStack.add(activity); } /** * 获取栈顶Activity(堆栈中最后一个压入的) */ public Activity getTopActivity() { return activityStack.lastElement(); } /** * 结束栈顶Activity(堆栈中最后一个压入的) */ public void finishTopActivity() { Activity activity = activityStack.lastElement(); finishActivity(activity); } /** * 结束指定类名的Activity * * @param cls */ public void finishActivity(Class<?> cls) { Iterator iterator = activityStack.iterator(); while (iterator.hasNext()) { Activity activity = (Activity) iterator.next(); if (activity.getClass().equals(cls)) { iterator.remove(); activity.finish(); } } } /** * 结束所有Activity */ @SuppressWarnings("WeakerAccess") 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() { try { finishAllActivity(); System.exit(0); android.os.Process.killProcess(android.os.Process.myPid()); } catch (Exception e) { } } /** * 结束指定的Activity */ public void finishActivity(Activity activity) { if (activity != null) { activityStack.remove(activity); activity.finish(); activity = null; } } /** * 得到指定类名的Activity */ public Activity getActivity(Class<?> cls) { for (Activity activity : activityStack) { if (activity.getClass().equals(cls)) { return activity; } } return null; }}
- 使用:为了进行统一处理,我们可以写在BaseActivity中:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_base); AppManager.getInstance().addActivity(this); //添加到栈中 } @Override protected void onDestroy() { super.onDestroy(); AppManager.getInstance().finishActivity(this); //从栈中移除 }
阅读全文
0 0
- Android中使用Activity管理类
- Android中使用Stack对Activity的管理
- Android中Activity的管理
- android Activity管理类(全局管理Activity)
- android Activity管理类(全局管理Activity)
- android Activity管理类(全局管理Activity)
- android activity管理类
- android应用程序中 activity管理类的实现
- Android的activity管理类
- Android Activity管理类介绍
- android activity的管理类
- android中activity的使用
- Android中Activity的使用
- Android Activity中使用Fragment
- 使用自定义的Activity栈来管理android的Activity
- 使用自定义的Activity栈来管理android的Activity
- 使用自定义的Activity栈来管理android的Activity
- Android Activity管理类,管理Activity和退出应用
- 关于引用(一)
- 2018网易--游历魔法王国
- HDU-6213-Chinese Zodiac(水题)
- 两个有序链表序列的合并
- 动态规划——旅行推销员问题
- Android中使用Activity管理类
- Step by Step——数据库-char & varchar & nvarchar
- 快速排序【递归分治法】
- linux 安装mysql5.6
- FL Studio 12.3.73破解版下载
- 事件
- Tcpdump编译
- 算法提高 ADV-209 c++_ch02_04
- 【讲师卡】信息系统项目管理师CSDN课程体系17-18年讲师卡