zoukankan      html  css  js  c++  java
  • Application

          Application、Activity、Service都是ContextWraper的子类,ContextWrapper是Context的包装类,在ContextWrapper类中,有一个attachBaseContext方法,这个方法传递进去的参数就是ContextImpl的实例,也就是Context的实现类实例。而ContextWrapper中各种方法的调用都是间接调用的ContextImpl中的方法。

         Application初始化过程  Application构造函数->attachBaseContext-> onCreate

    所以在Application构造函数中不能使用Context中有关函数,因为还没有被实例化,会报空指针。

         Application会在启动Android应用程序的时候被调用。

         Application属于系统组件,是由系统创建的,直接new Application相当于是一个普通的Java对象,不具备用Context能力,所以使用new Applicaition的context功能的时候,常常会崩溃。

         Application全局只有一个,本身就是单例了,不再需要使用单例模式去为它做多重实例保护了。

  • 相关阅读:
    【09】绝不在构造和析构过程中调用virtual方法
    【08】别让异常逃离析构函数
    C++ 外部调用private方法
    【07】为多态基类声明virtual析构方法
    C++ 构造过程和析构过程
    理解C# Lazy<T>
    DG
    MongoDB
    sh.status()
    DG
  • 原文地址:https://www.cnblogs.com/SA226343/p/7201396.html
Copyright © 2011-2022 走看看