@vopross

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

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