我有一个单独的Web服务类,我只需要传递响应方法,url和数据列表,这些数据是发出请求和获取响应所必需的。我在我的登录活动中将此Web服务称为此
JifWebService webServices = new JifWebService();
webServices.Execute(RequestMethod.POST,
Jifconstant.LOGIN_URL, null, logindata);
loginResponse = webServices.getResponse();
loginResponseCode = webServices.getResponseCode();
在此登录数据中是一个包含一些数据的数组列表。现在我想使用异步任务在后台调用此Web服务。但我只是没弄错。我的Web服务逻辑是用完全不同的java文件编写的,它工作正常,但我想在异步任务中调用我的Web服务方法。enter code here
答案 0 :(得分:6)
您可以尝试以下代码进行异步任务,并在 doInBackground 中调用网络服务:
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
public class AsyncExample extends Activity{
private String url="http://www.google.co.in";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new AsyncCaller().execute();
}
private class AsyncCaller extends AsyncTask<Void, Void, Void>
{
ProgressDialog pdLoading = new ProgressDialog(AsyncExample.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
//this method will be running on UI thread
pdLoading.setMessage("Loading...");
pdLoading.show();
}
@Override
protected Void doInBackground(Void... params) {
//this method will be running on a background thread so don't update UI from here
//do your long-running http tasks here, you don't want to pass argument and u can access the parent class' variable url over here
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
//this method will be running on UI thread
pdLoading.dismiss();
}
}
}
完成强>