android返回多个activity,【Android】退出多个Activity方法(一)

当我们在使用APP过程中会不知不觉打开了多个Activity。如果中途我们想退出,没有做一步退出多个Activity的方法的话,就只能一步一步点,点到结束为止,对于这种APP当退出的一刻也就是卸载跟它说拜拜的时刻了。所以开发过程中我们应该去实现随时随地一步退出多个Activity的方法。

接下来介绍退出多个Activity的第一个方法:使用setFlags的方式。

举个例子,一个APP有四个Activity,分别是A、B、C、D,A为主界面。现在假设在D界面要完全退出。如下图所示:

                                                                            ab04ea0639f5cc828bce72d31bf87884.png

实现方式是:首先创建4个Activity,其中包括一个Textview和一个Button,Textview用来显示当前是哪个页面,Button用来实现跳转,接着在AndroidMainfest.xml文件中找到A的activity标签,添加android:launchMode="singleTop"。再接着在D.java的Button点击事件中的代码如下:

Intent intent = new Intent(D.this, A.class);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);这一句是重点。

2943b41d571dd2edfd9f457454360844.png

简单点来说,如果设置了这个标志的,那么当你启动一个Activity——A时,会把返回栈中处于A以上的Activity全部finish掉。举个例子,例如有A、B、C、D四个Activity,这时返回栈中从栈底到栈顶的顺序:A、B、C、D,现在想要从D界面跳转到A界面,同时设置了FLAG_ACTIVITY_CLEAR_TOP,那么当界面跳转到A界面时,返回栈中就只有A,B、C、D都在A的上方都会被finish掉了。

最后在界面A中重写onNewIntent(Intent intent)方法。代码如下:

@Override

protected void onNewIntent(Intent intent) {

super.onNewIntent(intent);

if (0 != (Intent.FLAG_ACTIVITY_CLEAR_TOP&intent.getFlags())) {

finish();

}

}

当设置FLAG_ACTIVITY_CLEAR_TOP进行跳转时,A回去调用的方法是onNewIntent(),所以可以在方法内实现将A活动finish掉,这样就实现了完全的退出多个Activity了。

方法步骤总结:

1.在AndroidMainfest.xml文件中,对主界面的activity标签指定属性android:launchMode=”singleTop”。

2.在想要退出的activity处,使用Intent跳转到主界面,同时使用代码为intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

3.在主界面重写onNewIntent(Intent intent)方法。判断intent.getFlags()&Intent.FLAG_ACTIVITY_CLEAR_TOP是否不等于0,若不等于0,则执行finish();将当前activity关闭。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值