Как заменить getState и getId(из Thread) при исп. Runnable?

191
28 октября 2018, 01:20

Я создавал потоки исп. extends Thread, решил заменить его на Runnable. Но я использовал методы getState и getId, которых в интерфейсе нет. Просто не очень понимаю, как внутри JDK устроены потоки, т.е. если я использую Thread thr = new Thread(), а потом thr.getState(), то мне кажется что он покажет мне state не того что мне нужен потока?

Answer 1

Обычно по классике делают так. В классе, который имплементит Runnable, создают переменную private Thread thread;. Далее, в конструкторе этого же класса инициализируют ее вновь созданным потоком, передавая себя как параметр: this.thread = new Thread(this);. Создают getter для этой переменной: public Thread getThread() { return thread; }. Можно тут же, в конструкторе, и запустить поток (если нужно): thread.start();. Или же потом, с помощью getter-a когда время придет... Так же, при помощи getter-a теперь можно доставать свойства и методы Thread-a.

READ ALSO
Поддержание подключения с сервером

Поддержание подключения с сервером

Доброго времени суток

190
Где храниться история в IntelliJ IDEA?

Где храниться история в IntelliJ IDEA?

И как ее удалить? И если я закоммичу проект, то история попадет на GitHub?

248
Как реализовать открытие layout по нажатию ImageButton (см. рисунки)?

Как реализовать открытие layout по нажатию ImageButton (см. рисунки)?

Надо сделать так, чтобы при нажатии на ImageButton открывался(появлялся) layout с некоторыми элементамиКак это реализовать?

158
Android JSON или сериализация

Android JSON или сериализация

В моём приложении есть база данных, которую заполняет пользовательДелаю функцию сохранения на диск и передачи бд

180