看板 AndroidDev 關於我們 聯絡資訊
※ 引述《awwseed (AndroidDev初心者LV.1)》之銘言: : 前提概要: : 之前處理有關網路的問題時都使用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轉圈圈等待下載時顯示在畫面上 類似以下的程式碼 String Result = ""; post.Post(ct, url, pair, new Callback(String callbackResult){ //do something, like above result = callbackResult; dialog.dismiss(); }); 在HttpNetWork#Post裡面寫Callback,這時候就看你要在Main thread或Worker thread 就你自己決定啦。 -- 雜七雜八的kewang部落格 http://kewang.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.163.25.228 ※ 編輯: kewang 來自: 118.163.25.228 (02/06 19:02)
awwseed:謝謝回覆!! 不過不太清楚什麼是在Post方法理寫Callback 02/06 20:56
awwseed:是類似這樣嗎? http://ideone.com/tVxbZv 02/06 21:00
kewang:http://0rz.tw/OuefN 這篇有寫,自己試試並了解一下原理 02/06 21:48
awwseed:好的!! 馬上來試看看,感謝您! 02/06 22:05
awwseed:感謝kewang,我大概做出來了!! 02/07 10:44
awwseed:不過我不是在post裡面寫new CallBack (不太清楚怎麼做) 02/07 11:25
awwseed:作法是建一個interface,HttpNetWork implements他 02/07 11:26
kewang:恭喜,有做出來就好 02/07 13:24