登录

去注册 忘记密码?

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

2021笔记: Lambda在Android中的奇怪现象

xiaoyang   2021-01-10 15:35   收藏 我也要投递项目>>

public class LambdaTest {

    public void testUseLambda() {
        WeakReference w = new WeakReference((View.OnClickListener) v -> {

        });
    }

    public void testInnerClass() {
        WeakReference w = new WeakReference(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
    }

}

apk中:

WX20210110-153351@2x.png

如果该lambda中不包含外部类任何参数,会编译成单例然后重复使用。

风险:不清楚会不会有内存不回收的预期。

可以考虑运行时,扫描一下相关类,根据类特征,排查一波。