Android中消息机制的几个问题解释

2020-09-09  本文已影响0人  dashingqi
Android_Banner.jpg

Handler的运行机制

Handler防止内存泄露

Handler导致Activity内存泄露的原因

Handler定义为static的同时,为何还要用WeakReference包裹外部类的对象?

防止泄露

为什么我们能在主线程中直接使用Handler,而不需要创建Looper
Handler里面的Callback能干什么
创建Message的最佳方式

Android 给Message设计了回收的机制,在我们使用的时候尽量复用Message,减少内存消耗。

Looper死循环为什么不会导致应用卡死,会消耗系统资源吗
Looper死循环会消耗系统资源吗
主线程的消息循环机制是什么?
public static void main(String[] args) {
        //初始化Looper
        Looper.prepareMainLooper();
        
    
        ActivityThread thread = new ActivityThread();
        // 重点分析
        thread.attach(false, startSeq);

        if (sMainThreadHandler == null) {
            sMainThreadHandler = thread.getHandler();
        }

        //运行loop
        Looper.loop();

        throw new RuntimeException("Main thread loop unexpectedly exited");
    }
ActivityThread并没有继承Thread,那么在main方法中创建的Looper是存储在那个线程中呢?
当发送一个延迟消息,会怎么样
上一篇下一篇

猜你喜欢

热点阅读