A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 真真姐 中级黑马   /  2012-4-21 22:24  /  2734 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 真真姐 于 2012-10-21 14:31 编辑


这是一个Android程序中一个主页面底部的导航条,实现的功能就是:在点击每一个按钮的时候会跳转至相应的页面(跳转后的页面也都加载这个导航条),但是有没有感觉到相应的问题,那就是万一有用户很无聊,一直点击某一个按钮怎么办,那是不是会弹出无数个一样的界面,怎么避免这种影响用户体验的问题呢!

在研究后发现了这种方法最简便,
那就是    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);  把这行代码加到每一个startActivity(intent);之前
代码的作用是把堆栈中的某一个Acticity提到前台,也就是在你点击的时候栈中的对应Activity会从以前的位置,变到当前的位置,所以不论你怎么点,一直是同一个Activity;
if (v.getId() == R.id.bookIndex) {
                        intent = new Intent(BaseActivity.this, HomeActivity.class);
                        intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);   //  把调用的存在的Activity提到前台 简便
                        startActivity(intent);    // 甚至省略了finish();一切都简单了不是吗?

是不是很简单,但是前提是你要了解Android的Activity栈原理
关于Activity的栈是什么请百度 google,另外这个方法还给返回键代来了两种便利,具体是什么另述! 另外根据Activity的生命周期,保证栈中的Activity不被系统自动销毁,下一篇另讨论!

请支持原创,纯手工制造,版主给技术分了!



评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马