Как говорит название, моя переменная не обновляется AsyncTask
onPostExecute()
Переменная не обновляется AsyncTask
Вот код
public class Search extends AppCompatActivity {
ArrayList<paire> Sectors = new ArrayList<paire>();//paire is my proper class
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
Rechercher rech = new Rechercher();
rech.execute();
//PRINTING SIZE OF Sectors HERE TELLS ME EXACTLY THE SIZE OF 0
/*
*
*
BLA BLA BLA BLA
*
*
*/
}
public class Rechercher extends AsyncTask<String, Void, ArrayList<paire>>{
@Override
protected ArrayList<paire>doInBackground(String... strings) {
/*
*
Process of creating the arrayList myArray
*
*/
onPostExecute(myArray);//I put this desesperatly xD it doesn't change anything
return myArray;
}
protected void onPostExecute(ArrayList<paire>myArray) {
for (int u = 0; u < myArray.size(); u ++){
paire r = myArray.get(u);
Sectors.add(r);
}
//PRINTING SIZE OF Sectors HERE TELLS ME EXACTLY THE SIZE OF myArray
}
}
}
Ну myArray
создается из данных, полученных незаконным из базы данных (подключение HTTP, JSON результат ...), и результат является очень приемлемым выходом JSON; здесь нет проблем, просто Sectors
не обновляется, если я пытаюсь использовать его на Main. Я не знаю, действительно ли я понимаю onPostExecute; или есть проблема! Спасибо
Я думаю, вы смущены тем, что асинхронность выполняется асинхронно. Вы увидите, как это запланировано, если вы запустили свой код в режиме отладки и разместили точки останова в различных методах. – njzk2