내 가 이해 하 는 Handler 의 사용 과 그 원리 에 대한 분석

4649 단어 Android
Handler  Android             ,          ,         。
        Handler           UI,       、   。        。
     :http://blog.csdn.net/zou_pl/article/details/63253530
  • Handler 가 사용 하 는 작은 예
  • Handler 원리 해석
  • Handler 사용 중 기술 Handler 가 사용 하 는 작은 예 는 Handler 가 사용 하 는 작은 예 를 먼저 봅 니 다. Button 하 나 를 클릭 하여 스 레 드 를 시작 한 다음 스 레 드 에서 메 시 지 를 메 인 스 레 드 에 보 내 UI 를 업데이트 합 니 다.
  • public class Test extends Activity {
        private static final int MSG_BUTTON_CLICKED = 1;
    
        public Button mButton = null;
    
        //    Handler   ,  new Handler(Looper.getMainLooper()),         
        private Handler mHandler = new Handler(Looper.getMainLooper()) {
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                    case MSG_BUTTON_CLICKED :
                        //     ,       UI,          
                        hideDialog();
                        break;
                    default:
                        break;
                }
            }
        }; 
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            // Button      
            mButton = (Button)findViewById(R.id.live_play_button);
            mButton.setOnKeyListener(mOnKeyListener);
        }
    
        private View.OnClickListener mClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //  Button   ,      ,        ,         UI
                new Thread(new Runnable() {
                @Override
                public void run() {
                    //      Handler        , Handler           
                    Message msg = new Message();
                    msg.what = MSG_BUTTON_CLICKED;
                    mHandler.sendMessage(msg);
                    //        
                    //mHandler.sendEmpty(MSG_BUTTON_CLICKED);
                }
            }).start();
        };
    
    
    }
               ,Handler                 。
        ,                 ,            ,            ,     。
    

    \ # \ # Handler 원리 해석 \ # \ # 비 UI 스 레 드 에서 UI 를 조작 할 수 없다 는 뜻 은 비 UI 스 레 드 에서 android. widget 과 android. view 패키지 의 구성 요소 에 접근 할 수 없다 는 뜻 입 니 다.Handler 의 사용 에 있어 Handler, Message, Message Queue, Looper 등 네 가지 구성 부분 을 알 아야 한다.Handler 는 수신 메 시 지 를 보 내 는 데 사 용 됩 니 다. Handler 는 보통 sendEmptyMessage (int) 를 사용 하여 int 수치의 빈 메 시 지 를 보 냅 니 다. sendEmptyMessage Delayed (int, delay) 지연 delay 밀리초 에 int 수치, sendMessage (msg) 를 보 냅 니 다. sendEmptyMessage Delayed (msg, delay) 지연 시간 에 메시지 체 를 보 냅 니 다.Handler 가 새로 Handler 를 만 들 때 다시 쓴 public void handleMessage (Message msg) {..} 에서 메 시 지 를 처리 합 니 다.Message 는 다 중 스 레 드 간 에 의사 소통 을 하 는 매개체 로 상호작용 이 필요 한 정 보 를 가진다.Message Queue 는 많은 메시지 로 구 성 된 메시지 대기 열 로 먼저 원칙 을 제시 합 니 다.Looper 는 메시지 관리자 로 Looper 의 loop () 방법 을 호출 하면 무한 순환 에 들 어가 작은 Message Queue 에 메시지 가 있 을 때 Handler 에 게 건 네 준 handle Message () 를 꺼 내 처리한다.스 레 드 마다 다양한 Message 가 있 습 니 다. 그들 은 Message Queue 를 구성 한 다음 에 Looper 는 이 Message 를 관리 하고 Handler 에 맡 깁 니 다.

    좋은 웹페이지 즐겨찾기