继承Activity和AppCompatActivity区别

1. 概述


在开发过程中,我们有时候会让子类继承Activity,有时候会继承AppCompatActivity,其实这两者会有一些不同的,那么接下来我们就让MainActivity分别继承Activity和AppCompatActivity,然后打印下activity_main中的ImageView,观察打印结果到底有有什么不同。

2. 打印结果:

继承Activity,打印结果如下:
Log.e("TAG", "" + mImageIv);    //  ImageView
继承AppCompatActivity,打印结果如下:
Log.e("TAG", "" + mImageIv);    //  AppCompatImageView

3. 不同点


AppCompatActivity:

1>:主要是为了兼容低版本的一些问题;

比如说在activity_main布局中写一个ImageView控件,然后分别让MainActivity继承Activity和AppCompatActivity,然后打印 image_view这个对象:
会发现:

继承Activity,打印结果如下:
Log.e("TAG", "" + mImageIv);    //  ImageView
继承AppCompatActivity,打印结果如下:
Log.e("TAG", "" + mImageIv);    //  AppCompatImageView

也就是说AppCompatActivity兼容了很多低版本的一些东西,比如说ImageView、TextView、Button、MD5.0的一些新控件它都做了一些兼容的:如下图所示:


图片.png

4. 分析原因


至于二者为什么会有区别,可以参考我的这篇文章
AppCompatActivity的setContentView的加载流程分析

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容