2014-10-06 5 views
0

Я хочу сохранить определенную информацию через http. Эта информация постоянно хранится в локальной базе данных (sqlite) и постоянно хранит ее на сервере (HttpPost).Запуск нескольких задач последовательно

Как я могу сохранить эту информацию, освобождая задачи по отдельности каждым данным из моей таблицы? Если возможно, упорядоченно.

Таким образом, я запускаю задачу и отлично работает (код является универсальным, конечно)

(я надеюсь, что мой английский правильно)

void SaveDataOnServer() 
{ 
    String data = db.getFirstData(); 
    task = new SaveItemTask(); 
    task.execute(data); 

    //if I have, say, 5 data, it would be nice to launch 5 row consecutive (for, while...)? 

} 

public class SaveItemTask extends AsyncTask<String, Void, Boolean> 
{ 
    protected Boolean doInBackground(String... param) 
    { 
     ...  
     HttpClient client = new DefaultHttpClient(); 
     HttpPost consult = new HttpPost(url + "?x=" + param[0]); 

     //making an HTTP POST request 
     try 
     { 
      HttpResponse response = client.execute(consult); 
      HttpEntity entity = response.getEntity(); 
      ... 
     } 
     catch... 
} 

.... 

@Override 
protected void onPostExecute(final Boolean success) 
{ 
    ... 
    if (success) 
    { 
     //Update row (set saved onserver=true) 
    } 
    ... 
} 
+0

'// Если у меня есть, скажем, 5 данных, было бы неплохо запустить 5 строк подряд'. Хорошо. Как вы сказали, вы можете использовать цикл for или while. – greenapps

ответ

0

http://developer.android.com/reference/android/os/AsyncTask.html

Задача может выполняться только один раз (исключение будет выбрано при попытке выполнить второе выполнение ).

Так что каждый раз каждый раз заново создавайте объект SaveItemTask, либо вы изменяете SaveItemTask, чтобы выполнить HttpPost целевое количество раз.

Смежные вопросы