Android開發之搜Ya項目說明(3)

來源:互聯網
上載者:User

Android開發之搜Ya項目說明(3)


項目
搜芽移動用戶端
----seller,app,base三個包的簡單說明
作者
曾金龍
Tel:18664312687 QQ :470910357@qq.com
時間
2014-10-14
說明
代碼說明






第一部分 Seller包
1,啟動頁面 StartUpActivity.java
啟動頁面,搜芽的第一個頁面。Android開發中需要在Manifest中設定程式的入口。
如下:
android:name="com.souya.seller.StartUpActivity"
android:label="@string/app_name"
android:theme="@style/notitle">





啟動頁面的邏輯:
展示搜芽圖片,故意停留2秒(2000毫秒),然後跳轉到登入頁面,採用new Handler().postDelayed方法實現
。詳見代碼,不再複述。


2,登入頁面
LoginActivity.java


登入頁面的邏輯:
接受使用者輸入,在本地儲存,並向伺服器發出登入請求,接收到回複如果成功,則跳轉到首頁面。


其邏輯框圖如下:
在使用者觸發按鈕的Onclick則進行登入。開啟一個非同步任務實現。非同步任務中調用DataProxy進行登入包的構建與發送。DataProxy將會是我們整個程式和伺服器打交道的代理。可以看看裡面的代碼,它是對http請求和相應的一個封裝。
登入返回之後,我們會開啟一個線程專門做心跳處理。定時發送心跳包。
具體見:SellerApplication.getInstance().mHeartbeatThread = new Thread(new Runnable() {
這行代碼。
尚未實現:註冊。











3 ,程式首頁面 MainActivity.java
程式的主介面
1)繼承自 SellerActivity 主要是為了監聽一些事件。具體可以去看代碼。
2)ViewPager TabPageIndicator TabsAdapter 實現Tab頁面,而這個Indicator是ViewPagerIndicator項目的(我們在工程匯入文件中有說明)。
需要知道掌握的就是如何添加一個Tab頁面放進來。
mTabsAdapter.addTab即可。


3)ActionBar。知道如何在ActionBar裡面添加一個自己的目錄選項。見onCreateOptionsMenu


4)TabsAdapter內部類。可以看看,無需改動。


第二部分 app包
1 活動頁管理 ActivityManager
對Activity的管理,為什麼要這個類,可以去網上搜,主要是為瞭解決回退時候的Activity管理問題。


2 崩潰日誌捕獲 CrashHandler
當APP異常退出的時候,記錄日誌到檔案,這樣方便我們分析哪裡崩潰。具體見代碼。


3 IP監控 IPMonitor
暫時未用到。
4 SellerApplication 應用類
Application類一般用來儲存全域資料,用來最開始的初始化。這類功能和設計可以去網上學習。
我們在這裡初始化log4j的日誌,儲存使用者登入帳號資訊。




第三部分 base包
這個包主要是幾個基類。為了更好的抽象和監聽事件,我們抽象了SellerFragment,它繼承了Fragment。
1 SellerFragment
關於Android推薦使用Fragment代替Activity的文章,網上學習,這裡不做介紹。
SellerFragment主要整合一些常用的功能。
1)圖片緩衝對象 ImageFetcher mImageFetcher(圖片緩衝對象的內部機制無需瞭解,是第三方的代碼,後續會用即可)。
2)對Fagment常見操作的封裝。


2 RefreshableFragment
繼承了SellerFragment,主要添加了對重新整理動作的處理。


3 BaseFragment
繼承了RefreshableFragment
主要加了,對取到圖片事件的監聽;網路變化的監聽;重新整理操作的監聽。


4 SellerActivity
Seller程式中各種Activity的基類。主要是在裡面豐富了對菜單的處理。
注意:ClothSearch mClothSearch;域是為了在ActionBar中添加搜尋而生的。在Actionbar中做搜尋是一個行業通用設計也是個痛點,後續有時間細緻的學習一下。






Q&A:
1 為什麼都是Fragment而不是Activity?
答:據我看到的,外包用的比較多的是Activity,而我們這裡用到比較多的Fragment的,我們的原則是能用Fragment的地方就盡量不要用Activity。
2 有些代碼看不懂,聲明了卻沒有地方用到,為什嗎?
答:有些代碼我沒剔除乾淨,不是懶,因為可能現在用不到,但我覺得後續肯定會用到,所以就留了個引子在那裡。如果看到這樣的代碼,無需過多關注。
3 為什麼這個版本和設計需求有初入?
答:因為精力有限,以及設計有時候並不一定最好。比如,那個搜尋,請看市面通用做法,大家的做法就是對的,我們無需懷疑那麼多互連網公司的設計能力。當然,更多的醜是因為沒時間去調。



































































聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.