我是靠谱客的博主 大方白猫,最近开发中收集的这篇文章主要介绍在非Main Activity中完全退出应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

先讲两个Intent的标记:
Intent.FLAG_ACTIVITY_NEW_TASK:
设置此状态,首先会查找是否存在 与被启动的Activity具有相同的亲和性的任务栈(即被启动的Activity是否创建过,创建过则存在)。

如果有,刚直接把这个栈整体移动到前台,并保持栈中的状态不变,即栈中的activity顺序不变
如果没有,则新建一个栈来存放被启动的activity

Intent.FLAG_ACTIVITY_CLEAR_TASK:

如果在通过Context.startActivity()启动activity时为Intent设置了此标识,这个标识将导致:在此activity启动之前,任何与此activity相关联的task都会被清除。也就是说,此 activity将变成一个空栈中新的最底端的activity,所有的旧activity都会被finish掉,这个标识仅仅和FLAG_ACTIVITY_NEW_TASK联合起来才能使用。

在非MainActivity中完全退出应用 只需要使用这两个标记就可以。

案例: 引导页面A 结束后 跳转 main页面B ,在main页面中监听back按键完全退出应用。

之前没有使用这两个Flag ,每次在main页面中System.exit(0) 或 finish()都返回引导页面中,不能直接退出应用。

原理:
利用task的特性(先进后出),在引导页跳转main页时 将已存在task清空 ,随后mainActivity将被放到task最底部。所以在mainActivity 中调用finish()或System.exit(0)时 直接退出整个应用

A –> B:只需要在跳转时 对intent设置 Flags即可

 Intent intent = new Intent();
intent.setClass(A.this, B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

最后

以上就是大方白猫为你收集整理的在非Main Activity中完全退出应用的全部内容,希望文章能够帮你解决在非Main Activity中完全退出应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部