Аналогичная функция SwingUtilities.invokeLater в android? - программирование
Подтвердить что ты не робот

Аналогичная функция SwingUtilities.invokeLater в android?

Когда-то я чувствую, что использование AsyncTask довольно сложно для задачи, я ищу аналогичную функцию, например SwingUtilities.invokeLater в android. Поскольку я просто хочу выполнить одну строку кода, нет смысла создавать для нее новый класс.

4b9b3361

Ответ 1

Возможно, вы ищете:

Activity.runOnUiThread(Runnable action)

Ответ 2

Activity.runOnUiThread(Runnable action);

Вышеуказанный метод немного отличается от invokeLater java, потому что он проверяет, уже ли вы на нитке ui, тогда он немедленно запустит Runnable.

Существует еще один способ убедиться, что ваш Runnable будет вызван позже, а не сразу, даже если вы находитесь в потоке пользовательского интерфейса. Для этого вы пишете следующий код, когда находитесь в основном потоке. Если вы вызываете это, когда на backend-потоке ваша runnable будет выведена на backend-поток..

  Handler h = new Handler();
    h.post(new Runnable() {
        @Override
        public void run() {
        //your code..
        }
    );

Ответ 3

Я точно не помню, что делает invokeLater(), но если вы хотите выполнить что-то с задержкой, вы можете использовать postDealayed(). Естественно, это связано с потоком пользовательского интерфейса, поэтому не подходит для длительных задач.