黑马程序员技术交流社区

标题: 解决你的Android程序中的按钮重复监听 [打印本页]

作者: 真真姐    时间: 2012-4-21 22:24
标题: 解决你的Android程序中的按钮重复监听
本帖最后由 真真姐 于 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不被系统自动销毁,下一篇另讨论!

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








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2