大家好,我想将变量传递给 AsyncTask
我有这个变量
private static String NAMESPACE = "aaa";
private static String METHOD_NAME = "bbb";
private static String SOAP_ACTION = NAMESPACE + METHOD_NAME ;
private static String URL = "ccc";
我有这个任务
public class Login extends AsyncTask<Void, Void, String>
{
ProgressDialog progress;
String response = "";
private ProgressDialog pDialog;
public void onPreExecute()
{
super.onPreExecute();
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Please Wait");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected String doInBackground(Void... arg0) {
final SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("username", user_name);
request.addProperty("userpass", user_pass);
final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
try
{
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
response = result.toString();
}
catch (IOException e)
{
response = "Error In The Operation(1) !!\n Check Internet Connection And TRY AGAIN.";
}
catch (Exception e)
{
response = "Error In The Operation(2) !!\n Check Internet Connection And TRY AGAIN.";
}
return response;
}
@Override
public void onPostExecute(String res)
{
if(!(res.equalsIgnoreCase("")))
{
if (res.toString().contains(",") == true)
{
String[] separated = res.split(",");
tv.setText(separated[1]);
return;
}
if(res.toString().equals("1"))
{
res = "Wrong User name OR password ,, TRY AGAIN ..";
tv.setText(res);
pDialog.dismiss();
return;
}
if(res.toString().equals("2"))
{
res = "Your Account Is temporarily Blocked ,, Please Call The Admin";
tv.setText(res);
pDialog.dismiss();
return;
}
if(res.toString().equals("3"))
{
res = "Error While Retrieve S Information ,, Try Again Later .";
tv.setText(res);
pDialog.dismiss();
return;
}
tv.setText(res);
pDialog.dismiss();
}
}
}
我需要何时执行此任务
调用它并传递上面的变量
像
new Login().execute();
做了
new Login().execute(URL,NAMESPACE,METHOD,USERNAME,USERPASS);
用 Knolledge 这个任务返回一个字符串 :)
并且doInBackground必须具有 user_name 和 user_pass 的值需要通过执行调用传递它..
问候 ...