




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Android移動應(yīng)用設(shè)計(jì)與開發(fā)第11章綜合案例講解11.1客戶端11.1.1
代碼結(jié)構(gòu)11.1.2功能模塊11.2服務(wù)端11.2.1
總體介紹11.2.2數(shù)據(jù)解析和控制流程本章導(dǎo)讀11.1客戶端
客戶端從MVC設(shè)計(jì)模式的角度去分析有三個部分:視圖、控制器和模塊。其中界面視圖包含了Activity和一些View模塊,用于展示信息給用戶;模塊部分對應(yīng)到上圖的網(wǎng)絡(luò)模塊和數(shù)據(jù)模塊,各個模塊能提供不同的功能被其他部分調(diào)用;控制器對應(yīng)到上圖的MsgService部分,控制著整個客戶端消息的處理、數(shù)據(jù)的存儲和界面的刷新。11.1.1代碼結(jié)構(gòu)√用戶界面以Activity為核心,包括基礎(chǔ)(controller包)、啟動(loginsignin包)中的類√數(shù)據(jù)庫部分包括數(shù)據(jù)庫操作類(DatabaseHelper.java)、數(shù)據(jù)表(table包)及數(shù)據(jù)共享(contentprovider包)?!叹W(wǎng)絡(luò)部分包括了模塊(mode包)、請求類(Request.java)及網(wǎng)絡(luò)連接類(HttpClient.java),模塊中包括了針對不同請求類型返回數(shù)據(jù)的解析類,可以實(shí)現(xiàn)對返回數(shù)據(jù)的解析√其他一些包,如配置(application包)、服務(wù)(service包)、工具(utils包)等實(shí)現(xiàn)輔助功能11.1.1代碼結(jié)構(gòu)由事件驅(qū)動的任務(wù)處理機(jī)制具體的步驟:(1)捕獲到事件后確定是何種請求(有請求話題、請求私信和添加好友等);(2)封裝具體的請求參數(shù),根據(jù)請求的類型填寫相應(yīng)的參數(shù);(3)將參數(shù)傳送到所在Activity的AysncTask中進(jìn)行處理,進(jìn)行網(wǎng)絡(luò)的判斷和數(shù)據(jù)的請求等;(4)若請求成功,就需要調(diào)用數(shù)據(jù)模塊的解析方法以解析響應(yīng)的JSON格式的數(shù)據(jù);(5)若上述請求失敗了(本案例的失敗包括整個過程的所有失敗,比如網(wǎng)絡(luò)未連接和數(shù)據(jù)解析失敗等),跳到該步驟執(zhí)行通知用戶請求失??;若請求成功,這通知用戶刷新界面。11.1.1代碼結(jié)構(gòu)以定時器驅(qū)動的任務(wù)機(jī)制以定時器驅(qū)動的任務(wù)機(jī)制具體步驟:(1)與事件驅(qū)動不一樣的是,這里采用定時器定時啟動網(wǎng)絡(luò)訪問;(2)數(shù)據(jù)的封裝與事件驅(qū)動的一樣;(3)在Service中啟動新的線程來處理網(wǎng)絡(luò)連接請求;(4)數(shù)據(jù)的解析和數(shù)據(jù)的儲存與事件驅(qū)動處理中的步驟一樣;(5)界面視圖的更新(包含請求失敗和請求成功),由于任務(wù)的操作在Service中,Service中沒有涉及界面更新的方法,所以通過Handler和實(shí)現(xiàn)了MsgRefresh接口的Activity來完成界面刷新功能。11.1.2功能模塊
A、啟動B、注冊11.1.2功能模塊C、登陸D、注銷11.1.2功能模塊E、話題進(jìn)入話題列表界面(BoradcastActivity.java)時首先訪問本地數(shù)據(jù)庫,檢查是否存在話題信息,若不存在話題信息,則利用異步任務(wù)(AysncTask)機(jī)制——請求話題類ReadTask向服務(wù)器發(fā)送話題信息請求,獲取所有話題信息數(shù)據(jù),將數(shù)據(jù)進(jìn)行解析,保存到數(shù)據(jù)庫,再執(zhí)行界面刷新,將每條話題記錄的信息顯示。F、好友進(jìn)入好友界面時,首先訪問本地數(shù)據(jù)庫中是否存在,若不存在則通過異步機(jī)制(AsyncTask)向服務(wù)端請求數(shù)據(jù)。G、私信采用Android提供的異步任務(wù)來執(zhí)行任務(wù),包括私信的請求、回復(fù)等。具體的流程圖參考上一節(jié)中的登陸、注冊等流程,他們的控制過程大同小異,不同的只是輸入輸出的數(shù)據(jù)不一樣而已,不影響對任務(wù)處理過程的理解。11.1.2功能模塊H、用戶資料查看個人資料或者是其他用戶資料時都是用該P(yáng)rofileActivity做顯示和操作,當(dāng)要查看某個用戶的資料時,首先在好友表中查詢是否存在該用戶的信息,如果不存在則通過網(wǎng)絡(luò)向服務(wù)端請求,在請求的參數(shù)中放入該用戶的ID(UID),然后通過異步任務(wù)(AsyncTask)來請求用戶的資料。具體的流程圖參考上一節(jié)中的登陸、注冊等流程,他們的控制過程大同小異,不同的只是輸入輸出的數(shù)據(jù)不一樣而已,不影響對任務(wù)處理過程的理解。I、消息更新機(jī)制為了保證大案例中各個模塊能實(shí)時接收到服務(wù)端變化的數(shù)據(jù),比如好友發(fā)表了新話題、有新的私信等,本大案例中采用輪詢的機(jī)制每隔一段時間自動訪問服務(wù)器,讀取服務(wù)器端的話題、好友和私信表,查詢是否這些表中出現(xiàn)了新的值,若是出現(xiàn)了則返回這些數(shù)據(jù)。J、其他內(nèi)容如:用戶登錄數(shù)據(jù)的存儲;廣播接收者;軟件的更新功能11.2
服務(wù)端11.2.1總體介紹該案例采用的服務(wù)器是Tomcat6.5,代碼是用Java語言來編寫的,數(shù)據(jù)庫使用Mysql。11.2
服務(wù)端11.2.2數(shù)據(jù)解析和控制流程
在整個過程中,用戶發(fā)來的數(shù)據(jù)和返回的數(shù)據(jù)都是JSON格式的,整個過程主要分以下幾步:(1)接收請求的參數(shù),并分析參數(shù),也就是解析JSON格式里面的內(nèi)容;(2)通過獲得的用戶ID(UID)和密碼(password)去認(rèn)證用戶是否合法,當(dāng)然如果是注冊的話就跳開該步驟;(3)通過獲得的請求類型(requestType)將任務(wù)分發(fā)到相應(yīng)的類中,比如添加好友,此時就調(diào)到AddFriends中執(zhí)行;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年浙江省建筑安全員-C證考試(專職安全員)題庫及答案
- 2025吉林省建筑安全員-A證考試題庫附答案
- 制造企業(yè)生產(chǎn)訂單合同范例
- 借用焊工勞務(wù)合同范本
- 廠房轉(zhuǎn)讓合同范本 詳細(xì)
- 醫(yī)院設(shè)備租賃合同范本
- 臨期商品購銷合同范本
- 親戚公司入股合同范本
- 二年級口算題集錦100道
- 會場搭建合作合同范本
- 教學(xué)課件-《旅行社業(yè)務(wù)》-(中職)
- 第二章 第一節(jié) CT設(shè)備基本運(yùn)行條件
- 森林撫育施工組織設(shè)計(jì)
- 某道路拓寬工程施工組織設(shè)計(jì)
- 第一章染整工廠設(shè)計(jì)
- 上虞市化工、印染企業(yè)名單-企業(yè)負(fù)責(zé)人信息及聯(lián)系方式
- DL-T 736-2021 農(nóng)村電網(wǎng)剩余電流動作保護(hù)器安裝運(yùn)行規(guī)程
- YS/T 431-2009鋁及鋁合金彩色涂層板、帶材
- SB/T 10439-2007醬腌菜
- GB/T 33644-2017數(shù)控板料折彎機(jī)精度
- GB/T 32434-2015塑料管材和管件燃?xì)夂徒o水輸配系統(tǒng)用聚乙烯(PE)管材及管件的熱熔對接程序
評論
0/150
提交評論