I want to send more than one record of SQLite data to server when my internet connection is come back, i have programmed a broadcast receiver which works when my internet is come back, but it send only one data to server, i want to send all the records of table when internet come back, suggest me that how to pass arguments to async task in for loop, an take each data to params.
public class BroadcastCreateTask extends BroadcastReceiver { DatabaseHandler db; public ProgressDialog pDialog; JSONParser jsonParser=new JSONParser(); private static String url_insert_task= ""; // JSON Node names private static final String TAG_SUCCESS = "success"; @Override public void onReceive(Context context, Intent intent) { db= new DatabaseHandler(context); boolean status = NetworkUtil.isNetworkAvailable(context); String s = String.valueOf(status); if(s.equals("true")) Toast.makeText(context, "Connected to internet", Toast.LENGTH_LONG).show(); new createTask().execute(); Toast.makeText(context, "data send to server", Toast.LENGTH_SHORT).show(); if(s.equals("false")) Toast.makeText(context, "Not Connected to internet", Toast.LENGTH_SHORT).show(); } class createTask extends AsyncTask<String, Void,String> { @Override protected String doInBackground(String... arg0) { List<Task> tasks = db.getAllContacts(); for(Task t : tasks){ String o = t.getOwner(); String s = t.getSubject(); String st = t.getStartDate(); String dt = t.getDueDate(); String c = t.getContacts(); String sta = t.getStatus(); String p = t.getPriority(); String d = t.getDescription(); ArrayList<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("owner",o)); params.add(new BasicNameValuePair("subject",s)); params.add(new BasicNameValuePair("startdate",st)); params.add(new BasicNameValuePair("duedate",dt)); params.add(new BasicNameValuePair("contacts",c)); params.add(new BasicNameValuePair("status",sta)); params.add(new BasicNameValuePair("priority",p)); params.add(new BasicNameValuePair("description",d)); JSONObject json = jsonParser.makeHttpRequest(url_insert_task, "POST", params); db.deleteContact(new Task(o,s)); // check log cat for response Log.d("Create Response", json.toString()); try { int success = json.getInt(TAG_SUCCESS); if(success==1) { pDialog.dismiss(); } } catch (JSONException e) { // TODO: handle exception e.printStackTrace(); } return null; } return null; } // end of background method @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); } } // end of async task }`
Cursorreturned from the query. Perhaps if you show your current implementation we could help you better.