美文网首页Android实战项目Android开发Android技术知识
如何优雅的退出 App ?这样优雅的退出 App !

如何优雅的退出 App ?这样优雅的退出 App !

作者: 樱桃x | 来源:发表于2017-01-12 19:54 被阅读1504次

只需要下面这行代码(肯定还有其他的代码),当然,这是有限制的(。﹏。),而且只是退出当前的 task 而已!

BackFlow.finishTask(activity | fragment)

其实是我做了个开源项目(^__^),拿出来给大家鉴赏下,欢迎大家提意见

项目:https://github.com/xuyt11/androidBackFlow 欢迎关注和 star 。

功能:一个控制 Android 视图( activity 与 fragment )回退的工具。

tip :这是一个回退工具,不是跳转工具

解决思路

利用 startActivityForResult 、onActivityResult 、setResult与finish(activity)来进行实现。

如果我们每一次都是调用的 startActivityForResult 方法,那我们不就可以使用setResult与finish(activity),并在前一个视图的onActivityResult方法中对finish_task类型的setResults进行拦截,然后再setResult与finish(activity),这样就可以进行链式的视图回退,直到最后一个activity,这样当所有的activity都finish之后,整个App就退出了!

限制

当然,这也是有限制条件的,若在回退链中间有任何一个XXXActivity消耗过onActivityResult方法,则会停留在该XXXActivity,不能继续回退。

因为整个回退功能都是依赖于setResult方法将回退数据,链式的传递给前一个activity的onActivityResult方法,而在activity消耗了onActivityResult方法之后,是不会再调用该方法的。

现在发现的消耗onActivityResult方法的情况有:

1、切换task;

2、切换process;

3、在startActivity时,调用了intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

所以,只能在single task && single process的环境中使用。

更详细的介绍请到以下网页:欢迎关注、收藏、点赞和star

https://www.v2ex.com/t/333969

https://github.com/xuyt11/androidBackFlow

相关文章

  • 如何优雅的退出 App ?这样优雅的退出 App !

    只需要下面这行代码(肯定还有其他的代码),当然,这是有限制的(。﹏。),而且只是退出当前的 task 而已! Ba...

  • docker 优雅退出

    本文主要阐述如何让 docker 容器优雅的终止。 优雅退出定义 所谓优雅退出,指的是程序在退出之前,有清理资源、...

  • iOS 优雅的退出APP-suspend& terminateW

    目前主流APP都会有协议更新,同意就继续,不同意就退出的功能。 此前的做法是 这样的效果有点生硬,和闪退是一样的效...

  • Android面试题-app优雅退出

    Android程序员面试宝典 自定义控件 一分钟实现贴纸功能 一分钟实现TextView高亮 一分钟实现新手引导页...

  • Flutter - 退出App--转

    Flutter - 退出App Flutter - 退出AppFlutter退出App的方法一般有两种 ①Syst...

  • JVM优雅退出

    背景 在某个Java应用增加新功能,缩容机器,或者应用以及机器发生异常,通常会停止正在运行的应用,该应用通常正在运...

  • SpringBoot 优雅退出

    欢迎转载,但请在开头或结尾注明原文出处【blog.chaosjohn.com】[https://blog.chao...

  • Nodejs 优雅退出

    前言 我们在Nodejs业务逻辑复杂的时候,很难做到完全没有内存泄漏,和出现uncaughtException的异...

  • Java 优雅退出

    前言 先思考几个问题 Java 服务为什么会挂掉? 什么情况 Java 进程会挂掉? Java 进程挂掉如何做优雅...

  • istio sidecar 的envoy进程在kubernete

    istio sidecar 的envoy进程在kubernetes job中如何优雅退出? istio 是serv...

网友评论

    本文标题:如何优雅的退出 App ?这样优雅的退出 App !

    本文链接:https://www.haomeiwen.com/subject/iycjbttx.html