连续启动多个任务

时间:2014-10-06 08:38:04

标签: android android-asynctask http-post

我想通过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)
    } 
    ...
}

1 个答案:

答案 0 :(得分:0)

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

  

任务只能执行一次(如果是,则会抛出异常   尝试第二次执行。)

因此,每次重新创建SaveItemTask对象时,要么修改SaveItemTask以便执行HttpPost目标次数。