I need to call asynctask with different urls. i have three button, they do a http post to server with different urls, now i can call asynctask with one url but how can i call the same function with different urls.the following is my asynctask class:
private class Downloadfiles extends AsyncTask<URL, Integer, JSONObject>{
@Override
protected void onPostExecute(JSONObject jo) {
try {
cards = jo.getInt("cards");
points = jo.getInt("points");
cash = jo.getInt("cash");
} catch (JSONException e1) {
e1.printStackTrace();
}
//cardsv.startAnimation(textio);
cardsv.setText(""+cards);
cashv.setText(""+cash);
Log.e("wintype", "msg" + wintype);
super.onPostExecute(jo);
}
@Override
protected JSONObject doInBackground(URL... params) {
Log.e("msg++--", "play game method called");
BufferedReader reader=null;
data_to_send = "userId=" + userId ;
try
{
Log.e("inside try block playgame", "get text" + data_to_send);
// Defined URL where to send data
URL url = new URL(playgame);
// Send POST data request
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data_to_send);
wr.flush();
// Get the server response
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
// Read Server Response
while((line = reader.readLine()) != null)
{
// Append server response in string
sb.append(line + "\n");
Log.e("inside playgame", "while loop");
}
play_response = sb.toString();
}
catch(Exception ex)
{
Log.e("MyTag ", "Failure to get json data in playgame--1--", ex);
}
finally
{
try
{
reader.close();
}
catch(Exception ex) {
Log.e("MyTag", "Failure to get json data in playgame--2--", ex);
}
}
Log.e("play response from the server in ", "play game" + play_response);
JSONObject jo = null;
try {
jo = new JSONObject(play_response);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return jo;
}
}
and i am calling this with one of my buttons click
Downloadfiles download = new Downloadfiles();
downloads.execute();