[問題]把網路活動(post)模組化後跟主程序的溝通
看板AndroidDev作者awwseed (AndroidDev初心者LV.1)時間10年前 (2014/02/06 14:59)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):