2010-11-02 4 views
0

все, я хочу создать несколько обработчиков, которые запускаются на основе выбора пользователей, но эти обработчики реализуют один и тот же метод runnable. единственное отличие состоит в том, что они называют другой метод postDelayed(). как я могу добиться этого, не переписывая один и тот же код для runnable?сортировка различных обработчиков android

я до сих пор не ясно, о том, как handleMessages() работает, и если он может быть использован для этого? .. спасибо

ответ

1

Используйте обработчик и использовать корпус выключателя вокруг него. Обновите представление, отправив сообщение своему обработчику

Handler Handlerobject; 

Handlerobject= new Handler() 
{ 
    public void handleMessage(Message msg) { 

    switch(msg.what) 
    { 
    case 1: 
    // Your code to update the UI 

    break; 

    case 2: 
    // Your code to update the UI 
    break;   
    }   
}}; 

Handlerobject.sendEmptyMessage(1) or sendEmptyMessageDelayed 
+0

благодарит за отзыв. из вашего кода, означает ли это, что метод postDelayed() вызывает от разных обработчиков, приходит в виде сообщений или мне не хватает концепции? Еще раз спасибо – irobotxxx

+0

Обработчик - это легкий взвешенный метод, используемый для обновления вида. Когда вы находитесь за пределами основного потока, вам необходимо использовать эти методы для обновления пользовательского интерфейса. Обратите внимание, что эти методы запускаются в основном потоке, поэтому держите их светлыми, чтобы увеличить время выполнения. Вышеупомянутый метод использует один объект Handler, но вы можете добавить его в несколько случаев для обновления пользовательского интерфейса. Вы можете передать параметр в свой sendEmptyMessage(), чтобы сделать это. – DeRagan