前言
距離上次Activity基類(lèi)的感想已經(jīng)過(guò)去了大半年了,大家感興趣的話,可參看我當(dāng)時(shí)對(duì)于Activity基類(lèi)整合出現(xiàn)的一個(gè)疑問(wèn),進(jìn)而解決的記錄,文章地址如下:
基類(lèi)(BaseActivity)設(shè)計(jì)開(kāi)發(fā)談
今天就讓我們重拾Activity,來(lái)一次暢談吧。
今天涉及以下內(nèi)容
- 為啥又提及Activity基類(lèi)
- Activity牽涉到哪些東西
一. 為啥又提及Activity基類(lèi)
一個(gè)久遠(yuǎn)的問(wèn)題,一個(gè)已經(jīng)被大家使?fàn)€的玩意——Activity基類(lèi)。為啥現(xiàn)在又提及這個(gè)問(wèn)題,是作者腦袋灌水了嗎?
不,對(duì)于為啥現(xiàn)在又開(kāi)始提及這個(gè)問(wèn)題。是因?yàn)槲冶救嗽谑褂米约旱?code>Android基礎(chǔ)庫(kù)的時(shí)候,發(fā)現(xiàn)了一些問(wèn)題。我的Android基礎(chǔ)庫(kù)第一次發(fā)布是2019年,距今已有兩年多了,到目前為止發(fā)布了一百多個(gè)版本,提交次數(shù)達(dá)到500多次。我構(gòu)建Android基礎(chǔ)庫(kù)的初衷是幫助快速實(shí)現(xiàn)Android開(kāi)發(fā),當(dāng)然了,此庫(kù)頁(yè)協(xié)助我解決了不少問(wèn)題,不同程度的加快了我項(xiàng)目開(kāi)發(fā)的進(jìn)度,但是,瑕疵依然有,需要更迭優(yōu)化的空間還很大。其中對(duì)于Actiivty集成的模塊,使用十分頻繁。使用次數(shù)多了,發(fā)現(xiàn)問(wèn)題很大,已經(jīng)有些違背我當(dāng)時(shí)建庫(kù)的初衷。使用不是很便利,這種不便利主要體現(xiàn)在:
- 文檔說(shuō)明雜亂無(wú)章,不便理解
- 要使用
Activity基類(lèi)的時(shí)候要斟酌選擇
這種不便利不是體現(xiàn)在使用中,而是使用前。在使用之前我要知道這個(gè)Activity基類(lèi)是怎么用的,還要根據(jù)不同場(chǎng)景,不同特性來(lái)選擇相應(yīng)的Activity基類(lèi)。于是成本產(chǎn)生了。理解是需要花時(shí)間的,這就是成本。
當(dāng)然,這問(wèn)題的產(chǎn)生,原因就在于我對(duì)Activity基類(lèi)的整合不夠到位,由于當(dāng)時(shí)封裝過(guò)程比較繁瑣,以及考慮不夠全面,出現(xiàn)了幾個(gè)問(wèn)題導(dǎo)致使用不便,一個(gè)是說(shuō)明文檔東一個(gè),西一個(gè),比較分散,我使用起來(lái)都比較吃力,其他開(kāi)發(fā)者使用的話,估計(jì)更郁悶。再就是Activity基類(lèi)涉及到了幾個(gè)類(lèi),為的是處理不同場(chǎng)景,這對(duì)于一個(gè)app中只用一個(gè)activity基類(lèi)的設(shè)計(jì)理念上,已經(jīng)增加了不少成本,甚至失去了基類(lèi)該有的樣子。
二. Activity牽涉到哪些東西
那么,Activity基類(lèi)到底涉及到哪些東西呢?是什么導(dǎo)致我的Activity基類(lèi)不那么清新?
這里,我不得不梳理下我的工具包了。
目前,我的Activity基類(lèi)涉及到幾個(gè)應(yīng)用場(chǎng)景:
- 用于一般的
Activity(不涉及fragment,不涉及網(wǎng)絡(luò)通訊) - 便于實(shí)現(xiàn)
網(wǎng)絡(luò)通訊的Activity - 便于加載
fragment的Activity - 便于加載有
fragment的Activity進(jìn)行網(wǎng)絡(luò)通訊
這里需要解釋的是,為了便于實(shí)現(xiàn)網(wǎng)絡(luò)通訊,此Activity基類(lèi)需要能快速加載mvp模式,由于涉及到加載fragment的問(wèn)題,則此Activity基類(lèi)還要具備能快速實(shí)現(xiàn)Activity與fagment進(jìn)行數(shù)據(jù)交互的問(wèn)題。
這就是為啥我的Activity基類(lèi)整合不夠滿(mǎn)意的原因,雖然這些功能,目前Activity基類(lèi)們都具備,但是還是比較繁瑣,而且是基類(lèi)們實(shí)現(xiàn)的,而不是基類(lèi)實(shí)現(xiàn)的。
那么在接下來(lái)的日子,我將對(duì)我的Activity基類(lèi)架構(gòu)做一個(gè)簡(jiǎn)單的介紹,并開(kāi)始來(lái)優(yōu)化他們。
ok, 今天就講到這里了,謝謝大家。