вводить реестры из-за asynctask в Вебе service с android

я хочу ввести реестры в базу данных, но которая была бы iterativa пробегая список. и в каждой поездке вводить реестр.

возможно выполнять asynctask внутри for? какая-то помощь пожалуйста.

0
задан 08.09.2016, 18:10
2 ответа

Он не имеет чувства пробегать много цикл открывая трэды и общаться с сервером в каждом из них, как это был очень большой цикл, будет не удаваться. Вместо этого ты можешь parsear этот список и посылать ее ему в сервер в единственном вызове.

Прочитай больше о AsyncTask, в самой документации у тебя есть какой-то пример, я рекомендовал бы тебе даже делать твои собственные примеры, ты это ориентируешь плохо.

Метод doInBackground берется за то, чтобы реализовывать все задания, что ты приказал его на втором плане, что и как он он полностью безразличный.

1
ответ дан 24.11.2019, 13:27
  • 1
    Мендес я понимаю тебя. вот то, что maso меньше я делаю. прицел эта ссылка и скажи мне qu и # 233; он тебе кажется. спасибо заранее. es.stackoverflow.com/questions/22782/… – ICRUZ 08.09.2016, 20:03
  • 2
    Уже я ответил тебе в другом трэде – Alberto Méndez 08.09.2016, 20:19

Ты должен иметь в виду, что AsyncTask выполни трэд на втором плане твоего приложения. Он не состоит ни для чего рекомендуемо в том, что для каждого вставления в твоей базе данных ты веришь в нового hilo на втором плане, оптимальное состоит в том, чтобы создавать асинхронное задание, которое пробегало бы все реестры и делало inserts корреспонденты.

С AsyncTask у тебя есть возможность посылания параметров в твое задание и манипулирования ими.

Порядок более или менее так

private class Insert extends AsyncTask<A, B, C>

Где:

  • В es параметры для метода doInBackground

Метод doInBackground он для меня, более важно внутри асинхронного задания, так как он берется за то, чтобы выполнять весь твой код, здесь должна быть вся логика твоего задания второго плана. Следовательно ИМЕННО ЗДЕСЬ ты должен получать твою договоренность, объект, список данных, которых ты хочешь ввести в твоей базе данных. Именно здесь ты должен делать один for чтобы пробегать их и вводить их.

Если в твоем случае это одна List<> та, которую ты хочешь послать из-за параметра и обратиться должно бы быть

private class Insert extends AsyncTask<ArrayList<String>, B, C>

protected int doInBackground(ArrayList<String>... listaParametro) {
    int result = 1;
    try{
        for (int i=0; i<listaParametro.size(); i++) {
             System.out.println(listaParametro.get(i)); //Elemento iterado

        }
    }catch (Exception e){
        result = 0;
    }
    return result;
}
  • B - параметры для метода onProgressUpdate
  • C - параметры для метода onPostExecute

Метод onPreExecute он не приносит параметры, так как он работает перед тем, как инициализировать твое задание, ты можешь инициализировать переменные.

0
ответ дан 24.11.2019, 13:27

Теги

Похожие вопросы