android 对activity进行管理
来源:互联网 发布:福州公司网络管理制员 编辑:程序博客网 时间:2024/05/22 10:46
今天在写项目的时候遇到的一个问题,从mainActivity开始连续跳转了五个activity,再从最后一个回到mainActivity的时候,点击back键退出程序的时候遇到了问题,虽然点击back了,但是却回退到了上一页,这时想到了需要一个activityManager管理类进行activity的管理,代码如下。
public class ActivityManager {public static Stack<Activity> mActivityStack;private static ActivityManager instance;private ActivityManager() {}public static ActivityManager getInstance() {if (instance == null) {instance = new ActivityManager();}return instance;}// 退出栈顶Activitypublic void popActivity(Activity activity) {if (activity != null) {activity.finish();mActivityStack.remove(activity);activity = null;}}// 获得当前栈顶Activitypublic Activity currentActivity() {Activity activity = mActivityStack.lastElement();return activity;}/** 获取栈底部的Activity **/public Activity firstElement() {Activity activity = mActivityStack.firstElement();return activity;}// 将当前Activity推入栈中public void pushActivity(Activity activity) {if (mActivityStack == null) {mActivityStack = new Stack<Activity>();}mActivityStack.add(activity);}// 退出栈中所有Activitypublic void popAllActivityExceptOne(Class<? extends Activity> cls) {while (true) {Activity activity = firstElement();if (activity == null) {break;}if (activity.getClass().equals(cls)) {break;}popActivity(activity);}}// 退出其他的activitypublic void popAllOtherActivity(Class<? extends Activity> cls) {for (int i = 0; i < mActivityStack.size(); i++) {Activity activity = mActivityStack.get(i);if (!activity.getClass().equals(cls)) {popActivity(activity);}}}}但是这还不算完,需要在BaseActivity中的OnCreate方法和OnDestory方法里分别写pushActivity和popActivity,将MainActivity的启动模式设置为 android:launchMode="singleTask",好了,写到这里,我们就需要去测试一下,发现不会再出现上述的问题了。
阅读全文
0 0
- android 对activity进行管理
- Android通过栈对Activity进行管理避免内存溢出
- Android通过栈对Activity进行管理避免内存溢出
- 通过StackManager对Android应用的Activity进行自己管理的工具类
- Android通过Activity栈方式对Activity管理
- Android通过Activity栈方式对Activity管理
- Android通过Activity栈方式对Activity管理
- android PowerManager.WakeLock 对电源进行管理
- 如何对 Android 库进行依赖管理?
- 如何对 Android 库进行依赖管理?
- Android中使用Stack对Activity的管理
- Android开发-自定义application对activity的管理与控制
- Android 使用SQLiteOpenHelper对数据库进行版本管理
- Activity对对话框的管理
- Activity对Dialog的管理
- AMS对Activity的管理
- android Activity管理类(全局管理Activity)
- android Activity管理类(全局管理Activity)
- Spring事务
- mysql中 show index from tb_name命令各列的含义,mysql binary 含义
- django 部署后一直返回500
- House Prices (1):python 探索性数据分析
- keepalived双机热备故障时发送邮件
- android 对activity进行管理
- web工程中读取txt文件中二维数组并在页面显示
- java.sql.SQLException: Access denied for user 'Administrator'@'192.168.5.103' (using password: YES)
- 用Python编写MapReduce代码与调用-统计accessLog中链接所对应的UV
- POJ1845-Sumdiv (对A进行素因子分解+A^B的所有约数之和为+A^B的所有约数之和为+A^B的所有约数之和为)
- @RuquestMapping和@Pathvariable
- 希尔排序1
- jquery hover 不停闪动 解决(亦为stop()的使用)
- 报错处理:Expression parameters.formName is undefined on line xx, column xx in xx/xx/doubleselect.ft