• Android小项目之九 两种上下文的区别



    ------- 源自梦想永远是你IT事业的好友、只是勇敢地说出我学到! ----------

    按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点也都能说出了123来,但是这些孤立的点终究显得太零散了,因此,我想从今天开始,以最经典的手机安全卫士项目为例,自己锻炼一下,也是想和大家交流交流,希望大家都能给出见解,共同进步。


    九、两种上下文的区别
    我们在创建对话框的时候:
    AlertDialog.Builder builder = new Builder(this);//创建对话框
    这里面我们用了this,我们知道“上下文”还可以使用getApplicationContext()。
    但是如果我们在这里放进去的是getApplicationContext(),程序就会出错。

    这里我们要讲讲这两个的区别:
    对于getApplicationContext()的api解释是:
    Return the context of the single, global Application object of the current process. 
    This generally should only be used if you need a Context whose lifecycle is separate 
    from the current context, that is tied to the lifetime of the process rather than the current component. 
    这里返回的是整个应用程序的上下文。
    而我们使用this,代表的是当前activity的上下文。关联这个activity的源码发现,它是上下文的一个子类。
    我们知道,子类有的父类不一定有。我们这里使用this的原因是:
    这个对话框是Activity的一部分,整个应用的上下文没有对话框这个属性。
    很多情况下这两个可以同时使用的。比如在我们给一个Toast的时候,这两个是都可以的。

    ------- 源自梦想永远是你IT事业的好友、只是勇敢地说出我学到! ----------


    Le王冬冬 博客分享地址: http://www.cnblogs.com/dongdong230/ 每个人都应做一天攻城狮
  • 相关阅读:
    Java工具类
    集合 -- 嵌套表
    集合--索引表
    第一章
    记录Record
    序列Sequence
    操纵数据库 DML
    表的集合操作
    视图
    索引
  • 原文地址:https://www.cnblogs.com/dongdong230/p/4183094.html
Copyright © 2020-2023  润新知