一行代码,完成多层视图回退功能( android)(续) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
xuyt

一行代码,完成多层视图回退功能( android)(续)

  •  
  •   xuyt Jan 13, 2017 12079 views
    This topic created in 3394 days ago, the information mentioned may be changed or developed.

    本文是针对同学们提问的回答综述

    首先当然还是熟悉的前言,在熟悉的位置

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

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

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

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

    更详细的介绍可以点击:

    如何优雅的退出 App ?这样优雅的退出 App !: http://www.jianshu.com/p/75b145b9b222

    一行代码,完成多层视图回退功能( android ): http://www.jianshu.com/p/8fb52395c259

    一行代码,完成多层视图回退功能( android ): t/333969

    https://github.com/xuyt11/androidBackFlow/blob/master/README.md

    1 、设置 rootActivity 为 singleTask 的方式,来退出程序

    • 设置 rootActivity 为 singleTask 有这样一个问题:即在用户按下 home 键退出当前的 task 后,当再进入 task 时,在其上的所有 activity 都将被摧毁。所以,你只剩下一个 rootActivity 了。像手机中的电话 App 就是这个需求的,除非你的业务需求可以这样。
    • 但是,在 rootActivity 之前,添加一个欢迎页作为程序入口,由欢迎页跳转到 rootActivity ,然后销毁欢迎页,这样就解决了问题。
    • 这其中的区别只是该 task 是否为 singleTask launchMode Activity 创建的。所以,我猜测 task 与第一个 Activity 有关联。(具体原理不太清楚,希望高手指点!)。

    还有就是,我这个不只是一个退出 App 的工具,可以看下面的第 3 条

    2 、关于直接杀进程

    可以看看这篇文章: http://blog.csdn.net/u011277123/article/details/53579269

    《 Android 疑难杂症之 KillProcess 和 System.exit 无效》讲的很详细,非常值得阅读一番,我就不献丑了。

    3 、直接退出程序

    就是我也发过《如何优雅的退出 App ?这样优雅的退出 App!》这篇文章,所有可能造成了些误会。

    我一直在文章前面就强调过的:这是一个回退工具,不是跳转工具,所以当然也不只是一个退出 App 的工具

    • 我这个开源项目,其实是一个 Android 的视图回退工具,“退出程序”只是其中的一个功能类型(BackFlowType.finish_task),他还有其他 4 个功能类型。
      • back_to_activity: 返回到指定的 activity (回退到指定的 activity ),若有多个 activity 实例,则只会回退到第一个匹配;
      • back_to_fragments: 返回到指定的 fragment 列(回退到第一个匹配该 fragment 顺序列的 activity )
      • back_to_activity_fragments: 返回到 activity 和 fragment 列都一致的 activity (回退到包含了该 fragment 顺序列的 activity )
      • back_activity_count: 回退数量为 backActivityCount 个的 Activity ,适用于固定顺序的业务流程中,每个 activity 界面都能有固定的 position ,两个 activity position 的差值,即为 backActivityCount

    4 、关于倾入性

    有多个同学都提到了,但我想,主要还是一个关于解决回退功能复杂度的问题。

    若是在你的项目中有大量的多页面回退需求,我觉得这还是一个很好地解决方案的。

    所以需要权衡两者的利弊。

    5 、关于项目本身

    这个是我自己开源的项目,所以若有任何 bug ,可以在 github 上提出来,我虽然不能保证是第一时间,但绝对是会在最短的时间中解决的。我是会持续的对这个项目进行支持的。

    所以我也希望用户若有使用的,请在遇到 bug 时,也能在 github 上提出,能有解决方案就更好了。也希望大家多多支持。

    No Comments Yet
    About     Help     Advertise     Blog     API     FAQ     Solana     2647 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 02:17 PVG 10:17 LAX 19:17 JFK 22:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86