Как работать с потоками в Android?

Кто нибудь может мне объяснить на примерах как работать с потоками в двух ситуациях:
1) Изменить переменную из другого потока после завершения задачи
2) Возможно вызвать метод из другого класса после завершения потока
  • Вопрос задан
  • 290 просмотров
Пригласить эксперта
Ответы на вопрос 2
@red-barbarian
Простейший случай AsyncTask
doInBackground - выполняется на одном потоке
onPostExecute - выполняется на потоке который запускал AsyncTask
2) Возможно вызвать метод из другого класса после завершения потока

Возможно, у тебя ошибочное мнение, что разные классы выполняются на разных потоках, или весь класс выполняется только на одном потоке. Это не так. Методы класса могут выполняться на разных потоках.
Так же и изменение переменных технически не запрещено изменять из разных потоков.
Единственная особенность Android, что вьюхи можно менять только из UI- потока. Для этого и придуман AsyncTask (в том числе).

doInBackground - выполняется на новом потоке
onPostExecute - выполняется на UI
Также применяют как java - потоки (Thread, Executers, Concurrent ...), так и Handle, AsyncTask, IntentService и проч.
Но для знакомства лучше начать с AsynkTask. Он нормально подходит для простых задач.
Ответ написан
petermzg
@petermzg
Самый лучший программист
Создаете Handler в нужном вам потоке, например UI.
Затем в другом потоке вызываете post и передаете туда Runnable, который и будет вызван в базовом потоке
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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