首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ActivityWindow 创建过程

ActivityWindow 创建过程 Activity Window创建最终在ActivityThread 中的performLaunchActivity方法中,调用Activity的attach...、Window关系 一句话概括,Activity像工匠,View像窗花,window像窗户,LayoutInflater像剪刀,Xml像窗花图纸。...Activity根据他们不同职能,并且与他们相互配合像我们展示灵活与精致的界面 View如何与Activity进行关联 View并不是直接与Activity关联,而是通过Window这个中间人,Window...才是直接关联到Activity上的 Window如何与Activity进行关联 每一个Activity包含一个PhoneWindow,并且PhoneWindow是抽象类Window的子类,setContentView...让View与Window关联,ActivityWindow关联 总结 Activity包含一个PhoneWindow,而PhoneWindow继承WindowActivity通过setContentView

69730
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    理清 Activity、View 及 Window 之间关系

    我们看到显示的每个Window(包括对话框、全屏的Activity、状态栏等)都有他自己绘制的Surface。...同样,我们还是以是否存在这个问题为切入点,去理清ActivityWindow关系。 前面我们知道,Window已经是系统管理的窗口界面。那么为什么还需要Activity呢?...我们把Activity所做的事情,全部封装到Window不就好了? 其实,本质上讲,我们要显示一个窗口出来,的确可以不需要Activity。悬浮窗口中不就是没有使用Activity来显示一个悬浮窗吗?...既然如此,Window(以及View)能处理点击事件以及封装各种逻辑,那为啥还需要Activity呢?...为了让大家能简单、快速的开发应用,Android通过定义Activity,让Activity帮我们管理好,我们只需简单的去重写几个回调函数,无需直接与Window对象接触。

    1.2K90

    Android高频面试专题 - 提升篇(一)Window、View、Activity

    本篇主要介绍Window相关面试要点,常见Window属性,WindowActivity、View之间的关系。更多其他完整面试专题,请关注公众号获取. 1、Window是什么?...表示一个窗口的概念,是所有View的直接管理者,任何视图都通过Window呈现(点击事件由Window->DecorView->View; Activity的setContentView底层通过Window...7.ActivityWindow、DecorView、View之间的关系 每个Activity 包含了一个Window 对象,这个对象是由PhoneWindow做的实现。...即使Activity的布局已经成功添加到DecorView中,DecorView此时还没有添加到Window中 ActivityThread的handleResumeActivity方法中,首先会调用Activity...中——和Activity一致(setContentView) 将DecorView添加到Window中并显示——在Dialog的show方法中,通过WindowManager将DecorView添加到Window

    2.4K20

    从源码的角度浅谈ActivityWindow、View之间的关系

    序言 很多人都会用ActivityWindow、View,但是你知道他们是怎样加载出来并呈现在你眼前的吗?你知道他们之间有着鲜为人知的关系吗? ?...在这个例子当中,画板就好比Activity,纸就好比Window,而笔就是View,我们所看到的就是这幅画,是通过笔一点一点画出来的,在哪里画呢?当然是纸上了,而最终承载这幅画的东西就是画板了。...Window的创建过程 上面通过performLaunchActivity方法生成了一个Activity,我们来看看是怎样生成的: 1ActivityThread类: 2 3private Activity...方法中创建了一个Window,这个Window就是我们经常听到的PhoneWindow View的创建过程 我们大胆的猜测一下,View应该是被添加到Window中的,那么我们来看一下,到底是怎样添加的呢...a.mFinished && willBeVisible) { 8 r.window = r.activity.getWindow(); 9 View decor =

    60220

    Activity、View、Window的理解一篇文章就够了

    文章有点长,首先要理解Activity、View、Window,我提出了一些问题,这篇文章可以解答如下问题: 1、为什么要设计Activity、View、Window?...2、Activity工作过程是什么样的?(理解Activity) 3、Window是什么?它的职能是什么? 4、View跟Window有什么联系?...5、Activity、View、Window三者如何关联? 为什么要设计Activity、View、Window?...每一个Activity都包含了唯一一个PhoneWindow,这个就是ActivityWindow(之所以是说根Window是因为在它上面可以增加更多其他的Window,例如:弹出框(dialog))...4、View跟Window有什么联系? View需要通过Window来展示在Activity上。 5、Activity、View、Window三者如何关联?

    80510

    从源码角度分析ActivityWindow及View之间的关系

    我们都知道布局文件的加载是在Activity的onCreate()方法中,使用setContentView进行加载 这个方法是个重载方法 ?...直接创建了一个PhoneWindow对象, 那么意味着 每创建一个Activity都会创建一个PhoneWindow对象 那么PhoneWindow与Window到底是什么关系呢? ?...PhoneWindow是Window的子类 那么到此为止, 我们知道了其实Activity中的setContentView实际上是PhoneWindow在处理 我们找到PhoneWindow.java能发现其对应的方法...咱们平常开发时在xml中写的布局并不是根结点, 而是contentParent的子view 总结 它们之间的关系可以大致理解为: Activity: 相当于一栋房子 Window: 相当于房子里的一扇窗户...View: 相当于窗户上的一朵窗花 它们三个的创建顺序为: Activity--->Window--->View 具体时序图如下: ?

    39650

    Android开发之漫漫长途 Ⅲ——Activity的显示之Window和View(2)

    ); } } 不是要分析setContentView(R.layout.activity_main)为什么注释掉呢,,先别急,我们先运行一下,居然没有崩溃,只是得到一个空白内容页面(这个显示跟Activity...其实该系列的第一篇就提到了一些,在第一篇Android开发之漫漫长途 Ⅰ——Android系统的创世之初以及Activity的生命周期 的最后我们就提到了Activity的创建工作是在android.app.ActivityThread...又得到我们熟悉的HelloWorld界面,这个界面的层级图上一篇文章Android开发之漫漫长途 Ⅱ——Activity的显示之Window和View(1)已经上过了这里我们重新上传一下更详细的。...我们的setContentView(R.layout.activity_main);内部把activity_main.xml文件解析成View,并把该View添加到contentView。 ?...(R.layout.activity_main) * 逻辑这么简单吗?

    46530

    Activity

    Activity 什么是Activity 创建Activity 启动Activity 保存Activity状态 Activity的生命周期 ---- acitivyt 是什么 引用官方的说法: 是一个应用组件...窗口通常会充满屏幕,但也可小于屏幕并浮动在其他窗口之上 创建Activity 要创建Activity 必须继承自Activity或者Activity的子类。...Activity调用的第一个方法 , 创建完成后必须在Manifest文件中 声明此Activity 系统才会知道有这个Activity <application ....的状态 当用户 离开Activity去往另一个Activity时;Activity会被压入返回栈,如果内存不够就会被销毁 ,当Activity被销毁后其中的数据当然就没了,如果需要保留这些数据可调用 方法...当前activity1跳往到activity2 ,activity就会把activity1覆盖,这时就调用了此方法 onRestart(); 重新启动 onDestroy():activity再结束前调用的最后一个方法

    94660

    activity

    文章目录 一、activity的生命周期 1、activity的四种状态 2、activity的生命周期 3、activity的进程优先级 二、android的任务栈 三、activity的启动模式 四...、scheme跳转协议 一、activity的生命周期 1、activity的四种状态 running:可以交互 paused:可以看见但不可以交互,成员变量都还在,但是若内存紧张,将会优先被系统回收...stopped:完全被其他的activity覆盖看不见,成员变量都还在,但是若内存紧张,将会优先被系统回收 killed:被系统回收了,所保留的信息和成员变量已经不存在了 2、activity的生命周期...重新启动才调,由不可见状态变为可见状态的时候会调用 onDestory(): 做一些资源释放 3、activity的进程优先级 前台:可交互的activity 或者 在前台activity绑定的service...):创建的activity是在栈内的话,就会复用并将栈内其上的activity移除,并回调一个newIntent(); 4、singleInstence:在整个系统在只有这一个activity,并且独享任务栈

    65930

    Activity中启动和关闭其他Activity

    上一期我们学习了Activity的创建和配置,当时留了一个悬念,如何才能在默认启动的Activity中打开其他新建的Activity呢?那么本期一起来学习如何启动和关闭Activity。...一、概述 经过前面内容的学习,知道一个Android应用通常都会包含多个Activity,但只有一个Activity 会作为程序的入口——当该Android应用运行时将会自动启动并执行该Activity...至于应用中的其他Activity,通常都由入口 Activity启动,或由入口 Activity启动的Activity启动。 Activity启动其他Activity有如下两个方法。...该Module一共包含了2个Activity,并在AndroidManifest清单文件中配置两个Activity。...其中第一个Activity的界面布局非常简单,只包含一个按钮和文本提示,其中按钮的作用主要是启动第二个Activity

    4.2K50

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券