Activity继承关系学习感想

一、继承关系:
Activity -> ContextThemeWrapper -> ContextWrapper -> Context

下面我根据 Android 源代码,抽出了 Activity 所继承的类和实现的接口,并简单的分析了以下:

Context 抽象类
首先发现里面有很多常量,这些常量有些是采用16进制形式。
这位仁兄写得很详细。
public static final int MODE_PRIVATE = 0x0000;
public static final int MODE_APPEND = 0x8000;
public static final int MODE_MULTI_PROCESS = 0x0004;
public static final int MODE_ENABLE_WRITE_AHEAD_LOGGING = 0x0008;
public static final int BIND_AUTO_CREATE = 0x0001;
public static final int BIND_DEBUG_UNBIND = 0x0002;
public static final int BIND_NOT_FOREGROUND = 0x0004;
public static final int BIND_ABOVE_CLIENT = 0x0008;
public static final int BIND_ALLOW_OOM_MANAGEMENT = 0x0010;
public static final int BIND_WAIVE_PRIORITY = 0x0020;
public static final int BIND_IMPORTANT = 0x0040;
public static final int BIND_ADJUST_WITH_ACTIVITY = 0x0080;
public static final int BIND_VISIBLE = 0x10000000;
public static final int BIND_SHOWING_UI = 0x20000000;
public static final int BIND_NOT_VISIBLE = 0x40000000;

有四种类型:
1、绑定服务的标识;(以 BIND 开头的)
2、选项存储的标识;(以 MODE 开头的)
3、系统服务的常量;(字符串形式)
4、Context 标识;

定义了抽象方法:
1、获取资源、全局信息的方法;
2、定义出启动活动、服务、发广播、注册广播、注销广播等抽象方法;
3、定义了跟权限相关的抽象方法


ContextWrapper
它属于中间类,里面的方法都是实现父类的方法,并使用了回调的形式。使整个类显得简单明了。
具体大家可以看下源码,下面就丢几句给个样式参考:
    @Override
    public AssetManager getAssets() {
        return mBase.getAssets();
    }

    @Override
    public Resources getResources()
    {
        return mBase.getResources();
    }


ContextThemeWrapper
顾名思义,它实现了父类关于主题的方法、对 getResources、getSystemService 方法实现了逻辑判断


Activity
作为一个构造界面、处理交互事件的主体。


二、Activity接口实现
1、LayoutInflater 
layout加载器
  
2、Window.Callback  
手势、菜单交互事件以及与窗体相关的事件

3、KeyEvent.Callback    
 按键交互事件

4、OnCreateContextMenuLinstener  
 ContextMenu 创建监听器

5、ComponentCallbacks2     
组件回调的一个接口(具体还不了解)

由此可明白 Activity 主要实现的就是界面、交互,这两个功能。 跟这两个功能相关的事情,都由 Activity 来做。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值