Я хочу отправить более одной записи из SQLite
данных на сервер, когда мое подключение к Интернету вернется, я запрограммировал broadcast receiver
, который работает, когда мой интернет возвращается, но он отправляет только один данные на сервер, я хочу отправить все записи таблицы при возврате в Интернет, предложите мне, как передать аргументы в цикл async task
в цикле, взять все данные в параметры.Я хочу отправить более одной записи sqlite на сервер
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
}`
Вы должны просто выполнить запрос и выполнить цикл над строками в 'Cursor', возвращаемом из запроса. Возможно, если вы продемонстрируете свою текущую реализацию, мы могли бы помочь вам лучше. – Karakuri
Я написал для цикла в async-задаче, но в конечном итоге задача async будет вызываться только один раз, n как принимать параметры для async-задачи и задавать параметры, я не могу ее получить. –
Трудно понять ваше описание. Пожалуйста, покажите код, который вы написали, чтобы помочь мне понять вашу проблему. – Karakuri