菜鳥Android APP之紅點提醒三個階段

我們在進行真實項目開發(fā)的時候抬闯,是一定要用到與后端的數(shù)據(jù)交流。對于初學者來講关筒,與后端交互一件難以想象的事情溶握。到底怎么交互,怎么獲取后臺的數(shù)據(jù)蒸播。其實很簡單睡榆,我們常常用到URLConnection,HttpClient袍榆,Volley的這些框架就是與后端交互的框架胀屿。后端將數(shù)據(jù)放到特定的網(wǎng)頁上,每個網(wǎng)頁都有一個URL地址包雀,網(wǎng)頁的內(nèi)容一般都是JSON或者XMl格式的數(shù)據(jù)碉纳。后臺會給我們各種URL地址,只需要我們根據(jù)URL讀取到JSON馏艾,或者XMl格式的字符串劳曹,進行解析。這就是最簡單與后端數(shù)據(jù)的交互琅摩。
那說回來铁孵,什么紅點提醒。紅點提醒就是將用戶沒有查看的信息標記起來房资。并且顯示在界面上蜕劝。
我隨便拿一個APP例子來舉例說明,在這個APP中有三個需要紅點提醒的東西轰异,分別是貸款客戶數(shù)量岖沛,保險客戶數(shù)量,以及客戶總數(shù)量搭独。
下面這個頁面就是我們進入APP后的主界面婴削。客戶選項的紅點上數(shù)字就是顯示我們沒有查看的客戶總數(shù)量牙肝。


Screenshot_2016-07-03-15-38-32.jpeg

當我們切換到客戶這個fragment時唉俗,會顯示貸款客戶數(shù)量與保險客戶數(shù)量。不會fragment的初學者一定要去了解配椭,用一句話概括就是包含在Activity中虫溜,有自己的生命周期,受到宿主Activity影響的輕量級Activity股缸。


Screenshot_2016-07-03-15-38-39.jpeg

當我們隨便點擊入一個選項衡楞,假如進入到保險客戶的這個activity里面,ListView顯示用戶的信息敦姻,上面標記紅點瘾境,代表沒有沒有查看的客戶坎背,沒有紅點的代表已經(jīng)查看過的客戶數(shù)量。
Screenshot_2016-07-03-15-05-13.jpeg

當我們點擊一個有紅點的客戶信息的時候寄雀,需要向后端發(fā)送信息,代表我已經(jīng)查看了這條信息陨献。并且改變在主Activity的數(shù)量盒犹,和frament中的數(shù)量。如下圖:


Screenshot_2016-07-03-15-52-07.jpeg

那么這個功能怎么實現(xiàn)以及怎么優(yōu)化眨业,我在實現(xiàn)這個功能的時候急膀,經(jīng)歷的三個階段。
第一種階段:
思路:利用SharedPrefrence龄捡,和廣播卓嫂。
具體實現(xiàn):當我們進入主Activity的時候,從后臺讀取數(shù)據(jù)得到客戶總數(shù)量聘殖,保險客戶總數(shù)量晨雳,貸款客戶總數(shù)量,并把它存儲到sharedPrefrence里面奸腺。再將主Activity讀取SharedPrefrence客戶總數(shù)量并顯現(xiàn)出來餐禁。
當我們切換到frament的時候,從SharedPrefrence依次讀取貸款和保險用戶的數(shù)量突照,并且把它呈現(xiàn)出來帮非。
當我們點擊帶有ListView中帶有紅點item的時候,改變SharedPrefrence中的客戶數(shù)量和保險客戶的數(shù)量讹蘑,發(fā)送廣播末盔,通知改變。主Activity和fragment再從SharedPrefrence中對數(shù)據(jù)讀取一次座慰,然后發(fā)生改變陨舱。

我們發(fā)現(xiàn),這個過程中所有操作都要使用到SharedPrefrence版仔,而且代碼全部寫在各種Activity中隅忿,顯得代碼臃腫,代碼沒有復用性邦尊,沒有邏輯背桐。于是演化了第二種思路。

第二種階段
思路:利用靜態(tài)的數(shù)據(jù)擁有與應用的同樣的生命周期蝉揍,舍棄了SharedPrefrence链峭。
具體實現(xiàn):創(chuàng)建一個類,在類中設定3個靜態(tài)整型又沾,分別為客戶總數(shù)量弊仪,保險客戶數(shù)量熙卡,貸款客戶數(shù)量。在這個類中分別寫入三個方法励饵。分別為根據(jù)客戶數(shù)量判斷紅點方法驳癌,根據(jù)保險客戶數(shù)量紅點方法,根據(jù)貸款客戶數(shù)量紅點方法役听。
當我們進入主Activity的時候颓鲜,將得到的數(shù)據(jù)分別存入3個靜態(tài)數(shù)量。然后在主Activity中調(diào)用根據(jù)客戶數(shù)量判斷紅點典予。
當我們進入fragment的時候甜滨,分別調(diào)用根據(jù)保險客戶數(shù)量紅點方法,根據(jù)貸款客戶數(shù)量紅點方法瘤袖。判斷保險客戶和貸款客戶紅點顯示的情況衣摩。
當我們點擊ListView上顯示有紅點的item的時候,改變靜態(tài)的客戶總數(shù)量捂敌,保險客戶數(shù)量艾扮,貸款客戶數(shù)量。發(fā)送廣播給主Activity和Fragment占婉。然后在主Activity調(diào)用根據(jù)客戶數(shù)量判斷紅點的方法栏渺;在fragment中調(diào)用根據(jù)貸款數(shù)量判斷紅點方法或根據(jù)保險客戶數(shù)量判斷紅點方法。
第二種思路提高的代碼的復用锐涯,并且利用的一個中心類控制所有操作磕诊,舍棄了對SharadPrefrence的頻繁使用,根據(jù)我的測試纹腌,還能提高紅點顯示的速度霎终。

第三種階段
思路:不要廣播,利用fragment的生命的周期和Activity的生命周期升薯。
具體實現(xiàn):
在第二種思路上擴展莱褒,繼續(xù)使用一個中心類控制所有操作。
當我們點擊ListView中的帶有紅點item的時候涎劈。只改變相應紅點的數(shù)量广凸,而不發(fā)送廣播。而是在fragment使用在onCreatView()方法和Activity中onResume()方法中調(diào)用判斷紅點顯示情況的方法蛛枚。
我們知道谅海,當我們從fragment的跳轉(zhuǎn)時,會執(zhí)行Fragmeng中的onDestroyView()方法蹦浦,切換回fragment的時候扭吁,會執(zhí)行onCreatView()方法。
跳轉(zhuǎn)Activity的時候會執(zhí)行onStop()方法,跳回的時候會執(zhí)行onResume()方法侥袜。
第三種思路徹底利用生命周期蝌诡,舍棄了廣播的使用和簡化的代碼。

在整過過程的我們發(fā)現(xiàn)枫吧,一個好的思路是在你做項目的過程中慢慢得出來的浦旱,不是我們一步得到的。我們首先要用自己最能想到的方法實現(xiàn)這個功能再說九杂,在這個基礎之上颁湖,在對代碼進行優(yōu)化尤其在開發(fā)實際項目是,速度第一尼酿,性能第二。最好的策略就是快速完成項目植影,然后快速迭代裳擎,優(yōu)化性能和代碼。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末思币,一起剝皮案震驚了整個濱河市鹿响,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谷饿,老刑警劉巖惶我,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異博投,居然都是意外死亡绸贡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門毅哗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來听怕,“玉大人,你說我怎么就攤上這事虑绵∧虿t!?“怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵翅睛,是天一觀的道長声搁。 經(jīng)常有香客問我,道長捕发,這世上最難降的妖魔是什么疏旨? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮扎酷,結(jié)果婚禮上充石,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好骤铃,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布拉岁。 她就那樣靜靜地躺著,像睡著了一般惰爬。 火紅的嫁衣襯著肌膚如雪喊暖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天撕瞧,我揣著相機與錄音陵叽,去河邊找鬼。 笑死丛版,一個胖子當著我的面吹牛巩掺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播页畦,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼胖替,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了豫缨?” 一聲冷哼從身側(cè)響起独令,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎好芭,沒想到半個月后燃箭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡舍败,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年招狸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邻薯。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡瓢颅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弛说,到底是詐尸還是另有隱情挽懦,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布木人,位于F島的核電站信柿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏醒第。R本人自食惡果不足惜渔嚷,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望稠曼。 院中可真熱鬧形病,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至途乃,卻和暖如春绍傲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背耍共。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工烫饼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人试读。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓杠纵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親钩骇。 傳聞我的和親對象是個殘疾皇子比藻,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,730評論 25 707
  • 最近剛從舊公司離職,為面試在做準備伊履,因為平時開發(fā)CV大法用得比較多韩容,很多基礎知識掌握得不是很牢靠以及很多工具框架只...
    黎清海閱讀 2,177評論 1 19
  • 前言:每一個人都有不為人知的一面,或好插爹、或壞哄辣、或善良、或邪惡赠尾,只有內(nèi)心強大且充滿美好的人力穗,無論在清晨中、烈日下還是...
    墨泥閱讀 801評論 3 1
  • 星期六的晚上气嫁,如約般在七點前進入CCtalk學習当窗,今晚周炅老師講的是?當一名有魅力的鄉(xiāng)村教師?。 如何成為或許是我...
    三門峽751陳志朋閱讀 440評論 4 11
  • 晚上洗完澡寸宵,打掃了一下家里衛(wèi)生崖面,準備把垃圾仍掉,我于是一手拿著鑰匙梯影,一手去提垃圾桶里的袋子巫员,哪知那塑料袋太蔳,稍微...
    寒風一劍閱讀 195評論 0 0