美文网首页
AutoClearedValue类记录

AutoClearedValue类记录

作者: 红鲤鱼与绿鲤鱼与驴_a2ef | 来源:发表于2017-08-22 13:21 被阅读0次

这个类AutoClearedValue比较有意思,它用于保存一个引用,并监听Fragment的状态,当Fragment销毁UI后将该引用置空。这种方式免去了每个Fragment里都要在相应生命周期方法里处理特定变量的麻烦:

/**
 * A value holder that automatically clears the reference if the Fragment's view is destroyed.
 * @param <T>
 */
public class AutoClearedValue<T> {
    private T value;
    public AutoClearedValue(Fragment fragment, T value) {
        FragmentManager fragmentManager = fragment.getFragmentManager();
        fragmentManager.registerFragmentLifecycleCallbacks(
                new FragmentManager.FragmentLifecycleCallbacks() {
                    @Override
                    public void onFragmentViewDestroyed(FragmentManager fm, Fragment f) {
                        AutoClearedValue.this.value = null;
                        fragmentManager.unregisterFragmentLifecycleCallbacks(this);
                    }
                },false);
        this.value = value;
    }

    public T get() {
        return value;
    }
}

是否也可以依照类似的思路,为Activity写一个?

在mvvm中,activity一般只负责创建fragment等实例,以及页面跳转等,并不需要持有多少引用,特别是引入dagger2后现象更明显。所以这样做意义不大。

相关文章

  • AutoClearedValue类记录

    这个类AutoClearedValue比较有意思,它用于保存一个引用,并监听Fragment的状态,当Fragme...

  • Spring切面编程(AOP)-记录管理系统操作日志

    一、注解类 二、注解使用类 三、AOP拦截类 四、MQ记录操作日志 五、操作日志记录表 六、HttpServlet...

  • 日志模块

    记录日志的类Python 使用logging模块记录日志涉及四个主要类,官方解释: 1.Logger 记录器,暴露...

  • python_图书管理系统

    用户类 书籍类 借阅记录类 书籍管理系统主程序 运行演示:

  • 工具库作业:2020-04-17

    我分享自己日常高频使用的APP: 记录类:随手记、记录体重、手机自带备忘录 文字类:石墨、简书、Zine 视频类:...

  • 2019-08-25

    IO工具类,记录日志

  • Django ORM

    ORM 映射关系表名 <-------> 类名 字段 <-------> 属性 表记录 <------->类实...

  • 权限系统设计概要

    第一类权限 添加[记录] = Create/Write - 【上传】 删除[记录] 修改[记录] 查询 | 获取 ...

  • 记录类博客总结

    理工科的我知道自己文笔不好, 技术因为目前正在学习,也没有什么可以详写的。 于是就想写博客,先锻炼下自己,为之后的...

  • 日记类软件记录

    疾风日记 Better Diary 简书

网友评论

      本文标题:AutoClearedValue类记录

      本文链接:https://www.haomeiwen.com/subject/wrkhcxtx.html