一行代碼,完成多層視圖回退功能( android)(續(xù))

本文是針對同學(xué)們提問的回答綜述

首先當然還是熟悉的前言,在熟悉的位置

//********************************

其實是我做了個開源項目(^__^),拿出來給大家鑒賞下,歡迎大家提意見

項目:https://github.com/xuyt11/androidBackFlow歡迎關(guān)注和 star 。

功能:一個控制 Android 視圖( activity 與 fragment )回退的工具。

tip :這是一個回退工具,不是跳轉(zhuǎn)工具

//********************************

更詳細的介紹可以點擊:

如何優(yōu)雅的退出 App ?這樣優(yōu)雅的退出 App !:?http://www.itdecent.cn/p/75b145b9b222

一行代碼,完成多層視圖回退功能( android):?http://www.itdecent.cn/p/8fb52395c259

一行代碼,完成多層視圖回退功能( android): https://www.v2ex.com/t/333969

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

//********************************

1、設(shè)置 rootActivity 為 singleTask的方式,來退出程序

? ? A: 設(shè)置 rootActivity 為 singleTask 有這樣一個問題:即在用戶按下 home 鍵退出當前的 task 后,當再進入 task 時,在其上的所有 activity 都將被摧毀。所以,你只剩下一個 rootActivity 了。像手機中的電話 App 就是這個需求的,除非你的業(yè)務(wù)需求可以這樣。

? ? B: 但是,在rootActivity之前,添加一個歡迎頁作為程序入口,由歡迎頁跳轉(zhuǎn)到rootActivity,然后銷毀歡迎頁,這樣就解決了問題。

? ? C: 這其中的區(qū)別只是該task是否為singleTask launchMode Activity創(chuàng)建的。所以,我猜測task與第一個Activity有關(guān)聯(lián)。(具體原理不太清楚,希望高手指點!)。

還有就是,我這個不只是一個退出App的工具,可以看下面的第3條

2 、關(guān)于直接殺進程

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

《 Android 疑難雜癥之 KillProcess 和 System.exit 無效》講的很詳細,非常值得閱讀一番,我就不獻丑了。

3、直接退出程序

就是我也發(fā)過《如何優(yōu)雅的退出 App ?這樣優(yōu)雅的退出 App!》這篇文章,所有可能造成了些誤會。我一直在文章前面就強調(diào)過的:是一個回退工具,不是跳轉(zhuǎn)工具,所以當然也不只是一個退出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: 回退數(shù)量為backActivityCount個的Activity,適用于固定順序的業(yè)務(wù)流程中,每個activity界面都能有固定的position,兩個activity position的差值,即為backActivityCount

4、關(guān)于傾入性

有多個同學(xué)都提到了,但我想,主要還是一個關(guān)于解決回退功能復(fù)雜度的問題。

若是在你的項目中有大量的多頁面回退需求,我覺得這還是一個很好地解決方案的。

所以需要權(quán)衡兩者的利弊。

5、關(guān)于項目本身

這個是我自己開源的項目,所以若有任何 bug ,可以在 github 上提出來,我雖然不能保證是第一時間,但絕對是會在最短的時間中解決的。我是會持續(xù)的對這個項目進行支持的。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容