[問題]把網路活動(post)模組化後跟主程序的溝通

看板AndroidDev作者 (AndroidDev初心者LV.1)時間10年前 (2014/02/06 14:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
前提概要: 之前處理有關網路的問題時都使用AsyncTask或偷吃步StrictMode 不過現在遇到會很常需要post出去,所以想說把網路活動直接獨立出來 也因為c#後端有做表單驗證,必須把HttpClient保留住.. 目前的概念是開一個HttpNetWork.java 裡面有多個不同的Post方法, EX: HttpNetWork.java: public string Post(HttpClinet ct,String Url,List<NameValuePair> Pair) { String result = ""; ... retrun result; } 接著,在主程序裡建立一個HttpNetWork的物件 MainActivity.java String Result = ""; HttpNetWork post = new HttpNetWork(); Result = post.Post(ct,url,pair); 來取得我要的資料 有試過HttpNetWork裡用AsyncTask來Post 但會變成因為是非同步,所以主程序會繼續跑(希望主程序要hold住等下載完才繼續) 目前在主程序有做一個ProgressBar轉圈圈等待下載時顯示在畫面上 請問是要利用While來實做會比較快嗎? 類似: while(Result.compareTo("") == 0) { //waiting } 又或者在MainActivity.java內開thread,Handler來更新UI會比較恰當呢? 需求簡單來說 1.網路動作模組化(?),寫一個HttpNetWork.java,之後需要POST都透過這執行 2.要怎麼在主程序內等待另一個.java的子程序回傳的值? 3.上面那兩個動作會造成UI Thread裡面等待超過5秒丟ANR嗎? 4.為了C#的表單驗證所以先建立一個Application全域變數內放HttpClinet ct 登入後把ct放進Application中,之後需要POST時直接拿ct出來用這樣的方式(?) 先感謝大家的幫忙! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.108.10.102
文章代碼(AID): #1IypBh6N (AndroidDev)
文章代碼(AID): #1IypBh6N (AndroidDev)