Android App注销功能 的堆栈处理

    做一个Android App项目,需要点击App注销按钮实现注销功能。

方法:

    1 设置LoginActivity为启动Activity,即该Activity在App Task的栈底。

    2 在注销按钮所在Activity处,如下方式启动LoginActivity:

getActivity().startActivity(new Intent(getActivity(), LoginActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

注意:Manifest中, LoginActivity不能静态设置:android:launchMode="singleTask"。否则,注销功能实现了,但是,在桌面点击App图标,会清空当前Task的工作状态的Activity。



理解Android的Task

TargetActivity不是LoginActivity(不在栈底)时,销毁TargetActivity栈下所有Activity的方法:

    我们知道intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);这个方法是把要启动的activity在activity堆栈中上面所有activity给清空。如何将ActivityA在所在堆栈中下面所有的Activity清空?采取了一个比较笨的方法是先启动当前Task堆栈最下面的Activity A并且带上参数intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);。然后再启动我想要的ActivityB,并且finish掉当前最底端的activityA。各位谁有更好的方法?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值