2010-01-31 2 views
7

Я разрабатываю приложение для Android Мне нужно перейти от одного вида деятельности к другому , сначала мне нужно изменить цвета кнопки, затем задержать (так, чтобы), а затем вызвать эту же функцию (один я в обряде сейчас)Явный эквивалент [self performSelector: foo afterDelay: 2]

в Objective-C это делается с [само performSelector: Foo afterDelay: 2]

поэтому я должен быть в его Java эквивалент.

ответ

9

Для отложенных действий в Android я бы рекомендовал использовать Android Handler class с его postDelayed() method.

Создайте обработчик для вашего Activity как переменные:

private Handler mHandler = new Handler(); 

А затем добавить действие задержки следующим образом:

mHandler.postDelayed(new Runnable() { 
     public void run() { 
      //Do you thing here 
     } 
    },2000); 
+0

Обратите внимание, что вам не обязательно нужен обработчик для этого, если у вас его еще нет. 'postDelayed()' также доступен для любого виджета (например, 'Button'). – CommonsWare

+1

Выполняется ли функция run() в том же или другом потоке, кроме класса, в котором он был вызван? Если отличается, есть ли способ заставить его работать в одном потоке? –

Смежные вопросы