我想觸發每個按鈕上的HTTP發佈請求單擊以從android中的web服務獲取一些數據。我創建了一個異步任務來發送http請求。我的代碼如下:按鈕點擊觸發HTTP請求
活動
public void sendHttpRequest(View view){
//gets called on button click
new MyHttpRequestTask(this).execute();
}
MyHttpRequestTask
public class MyHttpRequestTaskextends AsyncTask<Void, Void, Void> {
@Override
protected void onPostExecute(Void result) {
//Show received data
super.onPostExecute(result);
}
@Override
protected Void doInBackground(Void... arg0) {
//Send http request
return null;
}
}
我有兩個問題,一個是該onPostExecute方法不被解僱,另一種是,如果我按該按鈕第二次或多次,該任務不被執行。但不知何故,我認爲onPostExecute方法沒有被調用是第二次執行該任務的原因。那麼,我做錯了什麼?我怎樣才能擺脫這些問題?由於
以下是完整的doInBackground方法
@Override
protected Void doInBackground(Void... arg0) {
Looper.prepare();
GpsHelper gpsHelper = new GpsHelper();
LocationHelper locationHelper = new LocationHelper(mContext);
gpsHelper.turnGPSOn();
String location = locationHelper.getMyCurrentLocation();
...
String rawHtml = HttpHelper.sendPostRequest(postUrl, postParams);
HtmlHelper.processRawHtml(rawHtml);
Looper.loop();
return null;
}
它利用GPS獲取當前位置,那麼當前的地址,並將其職位,以Web服務,然後從web服務的響應分析和處理。是GPS導致的問題嗎?
沒有看到onpostexecute沒有被調用的原因。請發佈更多詳情。 – rDroid
請求代碼裏面你的doInBack ... – Sivakumar
請按照此代碼。它工作得很好 http://stackoverflow.com/questions/11899793/android-http-post-request-on-clicking-button – vicky