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

看板AndroidDev作者 (652公車)時間10年前 (2014/02/06 18:49), 編輯推噓4(404)
留言8則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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)

02/06 20:56, , 1F
謝謝回覆!! 不過不太清楚什麼是在Post方法理寫Callback
02/06 20:56, 1F

02/06 21:00, , 2F
是類似這樣嗎? http://ideone.com/tVxbZv
02/06 21:00, 2F

02/06 21:48, , 3F
http://0rz.tw/OuefN 這篇有寫,自己試試並了解一下原理
02/06 21:48, 3F

02/06 22:05, , 4F
好的!! 馬上來試看看,感謝您!
02/06 22:05, 4F

02/07 10:44, , 5F
感謝kewang,我大概做出來了!!
02/07 10:44, 5F

02/07 11:25, , 6F
不過我不是在post裡面寫new CallBack (不太清楚怎麼做)
02/07 11:25, 6F

02/07 11:26, , 7F
作法是建一個interface,HttpNetWork implements他
02/07 11:26, 7F

02/07 13:24, , 8F
恭喜,有做出來就好
02/07 13:24, 8F
文章代碼(AID): #1IysYgKI (AndroidDev)
文章代碼(AID): #1IysYgKI (AndroidDev)