Возвращаю мой массив JSON из потока Android в класс

#android #json #arraylist

#Android #json #arraylist

Вопрос:

Хорошо, я сделаю все возможное, чтобы объяснить это.

Я создал поток для генерации Arraylist из URL-адреса JSON. Я хочу вернуть это в мой основной поток. Я рассматривал возможность использования глобального массива, но, видимо, это плохая практика.

 public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LoadJson generate = new LoadJson();
    GenerateDataset.thread.start();
}
  

Как вы можете видеть, я вызываю свой поток запуска в своем классе Generate, который начинает создавать мой Object Arraylist. Как бы мне лучше всего вернуть этот набор данных в мой исходный поток.

 Thread thread = new Thread(new Runnable() {

    @Override
    public void run() {
        try {
            Arraylist<elements> temp = Start(); //<----- this list is what I want to return
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
  

Ответ №1:

Вы можете сохранить MutableLiveData<Arraylist<elements>> в своем классе GenerateDataset, к которому поток будет иметь доступ.

В вашем MainActivity обратите внимание на LiveData и обновите пользовательский интерфейс.

о LiveData