本帖最后由 真真姐 于 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不被系统自动销毁,下一篇另讨论!
请支持原创,纯手工制造,版主给技术分了!
|