android 应用如何实现多个Activity在栈中finish掉

来源:互联网 发布:上海行知中学对口小学 编辑:程序博客网 时间:2024/06/05 23:59

有一种应用场景是这样的,列如你的应用登录后会一直检测session 是否过期,类似QQ,如果过期或者失效,会提示你身份验证已过期,并自动重新跳转到你的登录QQ的页面,但此时你的activty或许已在栈中存在多个,那么这种情况下你按返回键就会返回到sessioid过期的那个场景。


A-B-C-D-E ,这个是你栈中的activity,比如A是登录页面,B是你的主页面,如果你在E页面遇到sessionid过期,这是时候你的E Activity的栈下方还有D,C,B,  A到B的过程应该finish().  如果你要跳转到A,让用户重新登录怎么办

      直接跳转是不可能的,因为你无法控制栈里下方的内容。

比较好的方法是  E-》B ,B是singletop,这样清空B以上的activity ,然后在B的onNewIntent里 finish掉自己,并跳转到A,这样可以在页面上实现那个直接跳转的效果,。代码就不说了,这里提供下思路。

0 1