zoukankan      html  css  js  c++  java
  • context理解

          官方文档的解释是:Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents。

         常用的Context的子类是Activity和Service,我们可以将context理解为类似于Window下的句柄,但Window下的句柄,每个资源都可以是一个句柄,比如一个控件、图片等等,但在android中context只能是Activity和Service等这一类。如果要在Activity中新建一个dialog,在这个dialog中要添加一个控件,要给这个控件传递一个context参数,只能是Activity的实例,不能是这dialog,因为控件的事件需要activity来处理。所以context是一个统领一些资源(应用程序环境变量等)的上下文(理解为句柄)。

        我们在一个activity中有如下代码:

    Toast.makeText(null, "", Toast.LENGTH_LONG).show();  

         那么程序运行时会有空指针异常,就是因为第一个参数Context类型,我们传了null,这样运行到这段代码时,系统不知道activity的环境变量,所以就会出错。

     --------------------------------------------------------------------

    PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。

    --------------------------------------------------------------------

  • 相关阅读:
    [crontab]修改默认编辑器
    [mysql]忘记用户密码或者误删用户账号
    [vim]多行注释和多行删除
    [mysql]my.cnf在哪里
    [python]有中文字符程序异常的解决方案
    [Linux]虚拟机无法安装deepin15.9的解决方案
    Elasticsearch5.X IN Windows 10 系列文章(2)
    Elasticsearch5.X IN Windows 10 系列文章(1)
    HTTP Error 502.5
    centos7 yum install redis
  • 原文地址:https://www.cnblogs.com/devinzhang/p/2325217.html
Copyright © 2011-2022 走看看