<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                現在來分析MessageQueue是如何跨界工作的,其代碼如下: **MessageQueue.java-->MessageQueue.MessageQueue()** ``` MessageQueue() { nativeInit();//構造函數調用nativeInit,該函數由Native層實現 } ``` nativeInit()方法的真正實現為android\_os\_MessageQueue\_nativeInit()函數,其代碼如下: **android_os_MessageQueue.cpp-->android_os_MessageQueue_nativeInit()** ``` static voidandroid_os_MessageQueue_nativeInit(JNIEnv* env, jobject obj) { // NativeMessageQueue是MessageQueue在Native層的代表 NativeMessageQueue* nativeMessageQueue = newNativeMessageQueue(); ...... // 將這個NativeMessageQueue對象設置到Java層保存 android_os_MessageQueue_setNativeMessageQueue(env,obj, nativeMessageQueue); } ``` nativeInit函數在Native層創建了一個與MessageQueue對應的NativeMessageQueue對象,其構造函數如下: **android_os_MessageQueue.cpp-->NativeMessageQueue::NativeMessageQueue()** ``` NativeMessageQueue::NativeMessageQueue() { /* 代表消息循環的Looper也在Native層中呈現身影了。根據消息驅動的知識,一個線程會有一個 Looper來循環處理消息隊列中的消息。下面一行的調用就是取得保存在線程本地存儲空間 (Thread Local Storage)中的Looper對象 */ mLooper= Looper::getForThread(); if (mLooper == NULL) { /* 如為第一次進來,則該線程沒有設置本地存儲,所以須先創建一個Looper,然后再將其保存到 TLS中,這是很常見的一種以線程為單位的單例模式*/ mLooper = new Looper(false); Looper::setForThread(mLooper); } } ``` Native的Looper是Native世界中參與消息循環的一位重要角色。雖然它的類名和Java層的Looper類一樣,但此二者其實并無任何關系。這一點以后還將詳細分析。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看