Android Context

作者: 奔跑的微笑 | 来源:发表于2017-12-08 16:24 被阅读0次

    什么是Context?


    读过书的大家脑海里应该会有这么一个场景:

    “请联系上下文,分析这句话在文中的作用。”

    在于文中,我们吧上下文理解为语境,在程序中,我们可以响应的将上下文理解为:当前对象在程序中所出的一个环境,一个系统交互过程——这就是Context。

    Android 应用程序在一下几种情况下会创建一个Context:

        1、创建一个Application

        2、创建一个Activity

        3、创建一个Service

    读过源码的同学应该会比较清楚Application、Activity、Service与Context的关系——即它们三个都是Context的子类。所以不难理解,不通对象的Context的生命周期会有相应的差别。Application伴随者App的整个生命周期,所以Application的Context对象也是一个贯穿整个App生命周期的Context对象,Activity,service的Context对象都与它们的生命周期相对应。


    Context的那些坑

    1、内存泄漏

    图1.1

    上面的单利引用了一个Context,看这好像没什么问题,但是Context的来源是不能确定的,当MyUtil这个类被引用了,其所引用的Context就是一直被引用进而造成持有这个Context的类一直得不到释放,故会造成内存的泄漏。

    一般我们可以采用一下的方法进行优化:

    图1.2

    相关文章

      网友评论

        本文标题:Android Context

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