以下是android和ios对runloop的大概实现;
当然android里面不叫runloop,叫looper;
基本都是while循环来处理;
只是android是管理一个消息队列,有任务了就塞到队列里,然后looper再取出来执行;

android 实现

public static final void loop() {       Looper me = myLooper();//从该线程中取出对应的looper对象        MessageQueue queue = me.mQueue;//取消息队列对象...       while (true) {           Message msg = queue.next(); // might block取消息队列中的一个待处理消息..            if (msg != null) {                if (msg.target == null) {                   // No target is a magic identifier for the quit message.                   return;               }                               //处理消息                msg.target.dispatchMessage(msg);                msg.recycle();           }       }    }

IOS 实现
这里删掉了很多其他的代码,只保留了大概逻辑

do { //do something ......  //处理监听  __CFRunLoopDoObservers(rl, rlm, kCFRunLoopBeforeTimers);    //处理source0 和 source1  __CFRunLoopDoSources0(rl, rlm, stopAfterHandle);  __CFRunLoopDoSource1(rl, rlm, rls, msg, msg->msgh_size, &reply) ;  //处理timer  __CFRunLoopDoTimers(rl, rlm, mach_absolute_time());  } while (0 == retVal);

更多相关文章

  1. Android消息机制Handler源码分析
  2. Android消息提示框Toast
  3. 【Unity3D】与Android相互传递消息
  4. Android消息机制源码分析
  5. Android应用程序消息处理机制(Looper、Handler)分析(1)
  6. [Android面试系列]一句话讲清楚Android消息机制

随机推荐

  1. Android 自定义可拖拽,可放大缩小的ImageV
  2. Android里can't resolve symbol 问题
  3. Android App Bundle
  4. android am start 启动某个apk
  5. Android Studio cmake和jni的一些坑
  6. Android常见内存泄漏以及优化方案
  7. Android 控件TextView的属性
  8. Android 打包时:.....is not translated i
  9. android 入门学习笔记 上传大文件
  10. EditText 随记