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

Кто нибудь может мне объяснить на примерах как работать с потоками в двух ситуациях:
1) Изменить переменную из другого потока после завершения задачи
2) Возможно вызвать метод из другого класса после завершения потока
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 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, который и будет вызван в базовом потоке
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
MFMS Москва
от 150 000 до 250 000 руб.
Blogman Оренбург
от 20 000 до 110 000 руб.