ZKX's LAB

looper控制在主线程 Android Looper 主线程的Looper.looper()是在哪调用的?

2020-10-09知识8

Android中为什么主线程不会因为Looper.loop里的死循环卡死 事实上,会在进入死循环之前便创建了新binder线程,在代码ActivityThread.main()中:thread.attach(false);便会创建一个Binder线程(具体是指ApplicationThread,Binder的服务端,用于接收系统服务AMS发送来的事件),该Binder线程通过Handler将Message发送给主线程,具体过程可查看 startService流程分析,这里不展开说,简单说Binder用于进程间通信,采用C/S架构。

looper控制在主线程 Android Looper 主线程的Looper.looper()是在哪调用的?

为什么Android系统会给程序的主线程自动添加Looper Android 在进程的入口函数 ActivityThread.main()中,调用 Looper.prepareMainLooper,为应用的主e69da5e6ba90e79fa5e9819331333363393136线程创建Looper,然后调用Looper.loop()就启动了进程的消息循环,然后就可以处理消息了。ActivityThread源码:151 public final class ActivityThread {2202 private Activity performLaunchActivity(ActivityClientRecord r,Intent customIntent){2253 if(activity。null){2259 activity.attach(appContext,this,.,);5219 public static void main(String[]args){在这儿调用 Looper.prepareMainLooper,为应用的主线程创建Looper5240 Looper.prepareMainLooper();5242 ActivityThread thread=new ActivityThread();5245 if(sMainThreadHandler=null){5246 sMainThreadHandler=thread.getHandler();5247 }5254 Looper.loop();5257 }5258}Looper源码:52 public final class Looper {Initialize the current thread as a looper,marking it as an application's main looper.The main looper for your application is created by the Android environment,so you should never need to call this function yourself。.

looper控制在主线程 Android Looper 主线程的Looper.looper()是在哪调用的?

Android Looper 主线程的Looper.looper()是在哪调用的? http://blog.csdn.net/hello_12413/article/details/51759787这个可以参考下,

looper控制在主线程 Android Looper 主线程的Looper.looper()是在哪调用的?

looper在主线程是一个无限的循环 为什么不会导致anr Handler类怎么会算线程呢,它是用来发送和处理消息用的,而Looper类是用来存储消息队列以及处理消息循环的一个封装类。UI线程本身已经实现了消息队列,所有可以直接创建。

Android中为什么主线程不会因为Looper.loop方法造成阻塞

#android线程#android架构#looper#loop#线程

随机阅读

qrcode
访问手机版