今天在做项目的时候发现了一个问题,就是Android通过Intent来跳转Activity。其实这是一个很简单的东西,先实例化一个Intent,再通过startActivity来跳转Activity。但是,如果只是简单的来new一个Intent,那就会带来一个问题就是通过返回按钮来返回的时候,会重复出现已经不用的Activity。举个例子,Activity A通过3个按钮可以分别跳转到Activity B、C、D,当我从A跳转到B,再由B通过Intent来跳转到A,再由A跳转到C,C通过Intent回到A,D也同理,等我们再来按返回键的时候,会发现途中会再经过B、C,这是因为Intent把Activity压入了一个堆栈中,按照刚才的做法,此时堆栈中的顺序就是ABACAD,所以,通过Android设备上的返回键返回的时候,经过的就是DACABA,这样给整个应用的体验就带来了不便。
所以说,在做Activity的返回效果的时候,就不要取用Intent来跳回去,可以直接直接用onBackProcessed()这个方法,直接实现的就是返回键的效果,或者说如果非要用Intent来跳转的话,就好比说是A—》B—》C—》D,但是D想要不经过B、C回到A的话就只能用Intent,但是用Intent的话,又会带来前面所说到的问题,那可以在startActivity之前,加一个控制,调用Intent的setFlags,传入的参数是FLAG_ACTIVITY_CLEAR_TOP 。这样,在D跳转到A之前,系统就会先判断堆栈中是否有A,如果有,那就会把从D到A的所有Activity(包括D和A)都弹出堆栈,然后再在堆栈中新建一个Activity A。
最后再总结下finish()方法,一句话,它只能在Activity中使用,用于销毁当前的Activity。

更多相关文章

  1. ExtJS在Android中的显示效果
  2. Android逐帧动画的简单使用-语音播放效果的实现
  3. Android(安卓)Things入门防坑必读-树莓派硬件和系统下载安装篇
  4. react-navigation使用及dva初探二
  5. Android(安卓)Studio第二期 - 短信自动填写项目流程讲解
  6. android LinearLayout等view如何获取button效果
  7. Android闪屏页动画不起作用的解决方法
  8. ListView、ScrollView、GridView等去除滑动时边缘模糊
  9. Android(安卓)实现ListView的弹性效果

随机推荐

  1. Android的drawable文件夹的说明
  2. android获取系统时间
  3. Android(安卓)kotlin高级特性
  4. Qt5.2中的android环境搭建
  5. Android下免Root权限截屏
  6. Android使用继承View类来绘图
  7. Android长按imageview把图片保存到本地
  8. android 模拟按键单值/多值输入
  9. android图片压缩 —— 2
  10. 其他网站的好文章