полезно общаться между потоками.

у обновлять пользовательский интерфейс каждые 100 мс. После поиска в StackOverflow я нашел решение, используяRunnable а такжеHandler нравится

final Handler handler = new Handler();
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        //update UI here

        handler.postDelayed(this, 100);
    }
};
runnable.run();

Оно работает! Но у меня есть несколько вопросов:

Какой поток это делаетRunnable run on? MainThread or another thread? Here is the docs about <code>postDelay</code> <a href="/imgs/pIVPS.png" rel="noreferrer"><img src="/imgs/pIVPS.png" alt="enter image description here"></a>

Handler прилагается MainThread, так жеRunnable работает на MainThread?

ЕслиRunnable работает на MainThread, зачемHandler? По моим сведениям,Handler используется для отправки сообщений между двумя потоками

Ответы на вопрос(1)

Решение Вопроса

В каком потоке работает Runnable?

Runnable runnable = new Runnable() {
    @Override
    public void run() {
        //update UI here

        handler.postDelayed(this, 100);
    }
};
runnable.run()

ЭтотRunnable выполняется в текущем потоке, то есть в потоке, который вызывает этот код. Он волшебным образом не создает и не создает другую нить.Runnable.run() это только вызов метода.

последующий казни этой темы,Handlerв какой-нить темеHandler вбегает, по сути ничего не делает кроме перепланирования себя. Трудно поверить, что это решение чего-либо.

Ваш ответ на вопрос