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

重新认识Android Context

作为Android开发者,不知道你有没有思考过这个问题,Activity可以newAndroid应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?...ContextThemeWrapper类,如其名所言,其内部包含了与主题(Theme)相关接口,这里所说主题就是指在AndroidManifest.xml中通过android:theme为Application...当然,只有Activity才需要主题,Service是不需要主题,因为Service是没有界面的后台场景,所以Service直接继承于ContextWrapper,Application同理。...2:在Application和Service中去layout inflate也是合法,但是会使用系统默认主题样式,如果你自定义了某些样式可能不会被使用。所以这种方式也推荐使用。...那么问题来了,既然这两个方法得到结果都是相同,那么Android为什么要提供两个功能重复方法呢?实际上这两个方法在作用域上有比较大区别。

51330

Context都没弄明白,还怎么做Android开发?

Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new?...ContextThemeWrapper类,如其名所言,其内部包含了与主题(Theme)相关接口,这里所说主题就是指在AndroidManifest.xml中通过android:theme为Application...当然,只有Activity才需要主题,Service是不需要主题,因为Service是没有界面的后台场景,所以Service直接继承于ContextWrapper,Application同理。...2:在Application和Service中去layout inflate也是合法,但是会使用系统默认主题样式,如果你自定义了某些样式可能不会被使用。所以这种方式也推荐使用。...那么问题来了,既然这两个方法得到结果都是相同,那么Android为什么要提供两个功能重复方法呢?实际上这两个方法在作用域上有比较大区别。

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

[干货]让你彻底搞懂 Context 到底是什么,如果没弄明白,还怎么做 Android 开发?

Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new?...ContextThemeWrapper类,如其名所言,其内部包含了与主题(Theme)相关接口,这里所说主题就是指在AndroidManifest.xml中通过android:theme为Application...当然,只有Activity才需要主题,Service是不需要主题,因为Service是没有界面的后台场景,所以Service直接继承于ContextWrapper,Application同理。...2:在Application和Service中去layout inflate也是合法,但是会使用系统默认主题样式,如果你自定义了某些样式可能不会被使用。所以这种方式也推荐使用。...那么问题来了,既然这两个方法得到结果都是相同,那么Android为什么要提供两个功能重复方法呢?实际上这两个方法在作用域上有比较大区别。

57320

简洁优雅地实现夜间模式

事实上,日间模式与夜间模式就是给APP定义并应用两套不同颜色主题。用户可以自动或者手动开启。我们先看两个我认为实现地很优雅例子:知乎和Twitter。 ?...我们可以在任何时候调用这个方法,因为这个方法是静态。但是这个并不是一直存在,每次在开启进程时需要重新设置。...getChildFragmentManager(); manager.putFragment onCreate(); // other code here } } 我们也可以主题存储到...Q:为什么直接设置为MODE_NIGHT_AUTO呢? A:因为使用MODE_NIGHT_AUTO需要请求坐标权限,获取系统位置。你肯定会说了,这尼玛不是坑爹?...用户调整系统时间,当前主题也会随之改变。如果我们希望用户在设定主题后,主题还会随着时间改变,MODE_NIGHT_AUTO就不适用了。

1.6K30

Context都没弄明白,还怎么做Android开发?

开发者,不知道你有没有思考过这个问题,Activity可以new?...ContextThemeWrapper类,如其名所言,其内部包含了与主题(Theme)相关接口,这里所说主题就是指在AndroidManifest.xml中通过android:theme为Application...当然,只有Activity才需要主题,Service是不需要主题,因为Service是没有界面的后台场景,所以Service直接继承于ContextWrapper,Application同理。...2:在Application和Service中去layout inflate也是合法,但是会使用系统默认主题样式,如果你自定义了某些样式可能不会被使用。所以这种方式也推荐使用。...那么问题来了,既然这两个方法得到结果都是相同,那么Android为什么要提供两个功能重复方法呢?实际上这两个方法在作用域上有比较大区别。

31520

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

Android根据他们不同职能让他们各斯其活,同时也相互配合展示给我们灵活、精致界面。 一张图理清所有层级关系: ?...Activity工作过程: 要了解Activity工作过程,首先从启动开始,下面没有贴源码,因为本文章主题是三者之间关系,Activity东西太多了,就简单讲一下。...首先AlertDialog是继承Dialog,mWindow就是Dialog里面初始化对象,看看是不是PhoneWindow,如果是,那么就可以猜到通过在PhoneWindow添加View就可以在Activity...Android根据他们不同职能让他们各斯其活,同时也相互配合展示给我们灵活、精致界面。为啥这样设计?因为这样结构更好管理。就像为啥需要使用MVP、MVVM、各种设计模式一样。...Activity包含了一个PhoneWindow,PhoneWindow就是继承于Window,Activity通过setContentView将View设置到了PhoneWindow上,View

70110

2021秋招,我借这份PDF复习思路,收获百度,小米,滴滴出行等Android岗offer

怎么处理? 一个string传入方法,改变?换成stringbuild呢? Java垃圾回收、分代算法原理,如何判定对象死亡?gcRoot有哪些?...数据查出来为什么用cursor游标,直接返回个list集合? 缓存了10000条数据、怎么查出来并显示?项目中数据库大概是什么量级?数据量及占内存量? content provide是干什么?...Java基础 静态内部类和非静态内部类比较 多态理解与应用 java方法多态性理解 java中接口和继承区别 线程池好处,详解,单例 线程池优点及其原理 为什么推荐通过Executors直接创建线程池...为何不要在构造方法中传递参数 为什么官方推荐 Fragment.setArguments(Bundlebundle)这种方式来传递参数,推荐通过构造方法直接来传递参数呢?...,可以点击我【Gitee】,希望能够共同进步,共勉!

51140

常见面试题六之java系列

它们实现有共同点,不同点在于: 接口中所有的方法隐含都是抽象抽象类则可以同时包含抽象和非抽象方法。...抽象类成员函数可以是private,protected或者是public。 接口是绝对抽象,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用。...在应用设计中已经继承了别的对象情况下,这需要多继承Java不支持多继承),只能实现接口。同时,线程池也是非常高效,很容易实现和使用。 Java集合类框架基本接口有哪些?...Set:包含重复元素Collection。 List:有顺序collection,并且可以包含重复元素。 Map:可以把键(key)映射到(value)对象,键不能重复。...但是,他们有以下不同点: HashMap允许键和是null,Hashtable不允许键或者是null。 Hashtable是同步HashMap不是。

53960

《移动互联网技术》第六章 资源管理: 掌握定制控件样式、界面主题、可绘制资源程序编写方法

第一种,通过Android自动生成R文件来访问资源;第二种,采用Android提供资源类来访问;第三种,很多资源文件都是xml文件格式,可以在这些资源文件之间相互引用。...Android样式包括两个方面:Style(风格)和Theme(主题)。Style针对窗体元素,主要用来改变指定控件或者Layout样式,它存放在styles文件中。...新样式实际上包含两个样式,一个是背景样式,一个是文本样式,背景样式是从CustomButton上继承下来。...也可以主题看作是样式加强版。通过设置主题属性,不再需要为不同组件分别设置相同样式。可以把这些相同样式提取出来,一次性地完成设定。主题还能引用其他样式,并且能够应用于整个应用界面。...主题样式继承了具有深色工具栏浅色主题。接着通过标签可以添加自定义属性,或是覆盖父主题某些属性。在这里增加了三个颜色属性。colorPrimary属性主要用来设置工具栏背景色。

6910

【愚公系列】2023年11月 WPF控件专题 2023秋招WPF高频面试题

可以创建和动画 3D 图形。可以轻松绘制可缩放矢量图形不会出现锯齿状锯齿。2. 说说WPF中XAML是什么?为什么需要它?它只存在于WPF?...Command 对象包含要执行功能。 这消除了命令定义和功能之间直接联系,并促进了松散耦合。 当需要根据用户请求实现操作时,命令模式是处理对象最佳模式。...18.WPF 是建立在 Windows 窗体之上还是完全不同? 这两个是完全不同技术。 它们确实为两个方向提供了一些互操作性层,但除此之外没有任何共同之处。...ICommand 要求用户定义两个方法,bool CanExecute 和 void Execute。 CanExecute 方法只是告诉用户,我可以执行这个 Action ?...主要区别在于,普通 .NET 属性是直接从类中私有成员 读取, DependencyProperty 在调用 GetValue( ) 从 DependencyObject 继承方法。

40522

【设计模式】桥接模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

进行解耦 ; 组合方式 : 通过 组合 方式 建立 两个类 之间联系 , 不是 继承 ; 桥接模式类型 : 结构型 ; 桥接模式 相当于 使用桥梁 将两侧连接起来 , 这里指的是 使用桥梁 连接两个类..., 在两个类之间建立某种联系 , 可以通过继承 , 也可以通过组合 , 桥接模式 是采用 组合方式 , 建立两个类之间关系 ; 合成复用原则 , 推荐优先使用组合 , 不是继承 ; 桥接模式 可以防止子类过多...抽象 和 具体实现 之间 , 需要 增加更多灵活性 情况下 , 适合使用桥接模式 ; 使用 桥接模式 , 可以 避免在这两个层次之间 , 建立静态继承关系 , 通过 桥接模式 在二者之间建立 关联关系...独立变化维度 : 一个类存在 2 个或更多 独立变化维度 , 并且这些维度都需要 独立扩展 ; 抽象部分可以 独立扩展 , 具体实现部分 , 也可以独立扩展 ; 不使用继承 : 希望使用继承...: 组合模式 更强调 部分 与 整体间组合 ; 桥接模式 更强调 平行级别上 , 不同类组合 ; 桥接模式与适配器模式 : 共同点 : 都是让 两个类 配合工作 ; 不同点 :

2.9K30

面试官灵魂发问:你真的懂 Context

、Application 这些 Context ,我们先说说它们共同点,它们都是 ContextWrapper 子类, ContextWrapper 成员变量 mBase 可以用来存放系统实现...,正因为如此,Activity 继承是 ContextThemeWrapper 提供一些关于主题,界面显示能力,间接继承了 ContextWrapper ; Applicaiton 、Service...都是直接继承 ContextWrapper ,所以我们要记住一点,凡是跟 UI 有关,都应该用 Activity 作为 Context 来处理,否则要么会报错,要么 UI 会使用系统默认主题。...面试官:ContextImpl 实例是什么时候生成,在 Activity onCreate 里能拿到这个实例 :这个都是系统处理,具体时机没有跟进去看。...得出结论,ContentProvider Context 是在 Applicaiton 创建之后,但是 onCreate 方法调用之前初始化Android进阶学习视频】、【全套Android

1.5K11

ARouter 在多 module 项目中实战

Studio4.1.2 语言:Java 手机:三星A6s Android10 路由应用场景 安卓项目结构发展越来越倾向于多模块,模块间跳转如果使用原生方式(Intent跳转),那么会随着项目的发展壮大...ARouter出现,就很好解决了这个问题,官网地址:https://github.com/alibaba/ARouter/ ,其功能很强大,对于多模块项目,无论是否组件化,都很好解决了相互依赖和跳转带来维护成本...测试 ARouter 跳转 配置工作我们已经做完了,本文主要目的就是测试页面跳转,当然跳转就会包含是否携带参数、跳转是否需要有返回、以及没有依赖关系模块间是否可跳转,下面进行分组测试: tips:...模块内使用路由跳转 模块内的话,完全可以使用intent方式跳转,但本文主题是探究路由跳转用法,我这里以app模块内跳转为例,新建了一个名为MyInfoActivity页面,显示默认,通过在MainActivity...上面的演示效果中涉及app模块跳转home和circle模块、home模块和circle模块相互跳转,还记得前面的依赖关系

85640

Android开发 - 样式和主题

样式和主题(Styles and Themes) 一个样式(Style)是一个包含了指定样子和格式作用于视图控件(View)或者窗体(Window)属性集合。...它可以通过元素name属性(value)来被引用引用。这个示例样式可以在XML布局中被引用,比如“@style/CodeFont”(像上面介绍示例一样)。...如何应用单一视图或者作为应用主题,我们稍后讨论。 继承 在中parent属性让你可以指定一个你可以继承其属性样式。...作为替代,可以为一个你想继承样式名字构建前缀作为你样式名称,中间用“点”隔开。...安卓提供了一些内置资源,你可以使用这些预先定义好样式,不用自己再重新写了。

1.8K10

Android 样式系统 | 主题背景覆盖

这些对象以树形式组织而成,比如 Activity 包含 ViewGroup, ViewGroup 又包含 View。把主题背景设置到一个树状结构任意一层,此层及下一层都会受到影响。...… android:theme="@style/Theme.App.Bar"/> 如果在两个主题背景中都指定了同一属性,则最邻近 (local) 设置会生效,即 Bar...基于此,您可以试试主题背景覆盖 (Theme Overlay) 技术。 设计这些主题背景目的是用于覆盖其他主题背景。它们作用范围需要尽可能狭小,也就是说,它们仅定义 (或继承) 最小化属性。...它们继承了另一个 "完整" 主题背景 (如,Theme.MaterialComponents),因此可以将其设置为 Activity 主题背景。 主题背景覆盖。 仅应用于 "完整" 主题背景。...如果不清楚 Context 是否正确的话,您可能会遇到在尝试应用背景主题到子层级时生效情况,届时您可能会陷入困惑并且搞不清楚究竟发生了什么。

1.3K10

Android Material UI控件之MaterialButton

Android Material UI控件之MaterialButton 前言   作为Android开发者,常用控件肯定少不了按钮控件,常规按钮控件,只能满足基本需求,日常开发中,都会有渐变按钮...通过设置cornerRadius属性达到圆角效果。运行一下: ? 立竿见影。一行代码让你少些一个样式文件,嗨嗨皮。两个字舒服。...因为这个描边是内外描边,如果不加这个1dp填充,会出现上下按钮最边缘出描边宽度一半切割,我之前在低版本Android手机上就是这样写,不过在Android11中好像修复了这个问题,我设置padding...Color 表示这个图标的颜色,如果下拉框里面没有你满意颜色,你可以通过右边输入框来手动设置颜色,很方便。 Theme 很明显这是主题样式,只能选择下拉框里面的主题样式。...怎么搞,当然有办法搞,还有一个iconTint属性,这是一个图标色调属性可以对已有的图标进行二次着色,最终以这个颜色为准,设置则默认为icon

2.9K20

java面试强基(6)

面向对象三大特征了解?  封装 ​封装是指把一个对象状态信息(也就是属性)隐藏在对象内部,不允许外部对象直接访问对象内部信息。但是可以提供一些可以被外界访问方法来操作属性。...继承 ​不同类型对象,相互之间经常有一定数量共同点。同时,每一个对象还定义了额外特性使得他们与众不同。 ​...静态属性、静态方法和非静态属性都可以继承和隐藏不能被重写,因此不能实现多态,不能实现父类引用可以指向不同子类对象。非静态方法可以继承和重写,因此可以实现多态。...结论:java中静态属性和静态方法可以继承,但是没有被重写(overwrite)而是被隐藏. 深拷贝和浅拷贝区别了解?什么是引用拷贝? ...深拷贝 :深拷贝会完全复制整个对象,包括这个对象所包含内部对象。  == 和 equals() 区别? == 对于基本类型和引用类型作用效果是不同: 对于基本数据类型来说,== 比较

50761

Android 样式系统 | 主题背景和样式

本系列文章将由 Android 开发者关系团队工程师 Nick Butcher 和 Chris Banes 共同撰写,与各位开发者们共同揭开 Android 样式系统神秘面纱,帮助您高效编写时尚应用界面...这些对象以树形式组织而成,比如 Activity 包含 ViewGroup, ViewGroup 又包含 View。把主题背景设置到一个树状结构任意一层,此层及下一层都会受到影响。...比如把主题背景设置给一个 ViewGroup,此 ViewGroup 包含所有子 View 都会受到这个主题背景影响。(样式恰好相反,它只对被设置 View 起作用) <!...△ 不含主题 widgets 或样式扩展组合 如果改为使用样式和主题背景,则可以将因主题背景变化发生改变部分封装为主题背景属性,因此我们仅需要为每种 View 类型定义一个样式。...对于上面的示例,我们可以定义 4 个主题背景,为其中 colorPrimary 主题背景属性提供不同,之后当样式引用这些主题属性时会自动得到正确

1.1K30

史上最优美的Android原生UI框架XUI使用指南

XUI几乎涵盖了目前Android开发所需要所有组件,可以说有了XUI之后,可以大大提高我们开发效率,让我们可以将精力很多地放在业务功能和数据处理上。...首先,你需要确认是你当前组件所在窗口(Activity)所使用主题是否继承了XUITheme主题,如果没有,请按照接入文档正确接入。...7.XUI支持自定义属于自己主题?如何自定义主题以符合设计师给出UI风格。 答:XUI是支持自定义主题。详情参见如何自定义自己主题。...演示Demo相关问题 1.为什么XUIDemo项目我运行起来? 答:演示Demo程序跑通是肯定没有任何问题。这里推荐使用Android Studio 3.4.1以上版本打开运行。...答:"组件"中主要包含了XUI对外提供绝大多数组件使用案例,"工具"中主要包含XUI对外提供辅助工具使用案例。"拓展"中包含则是一些第三方常用UI组件库使用案例,非XUI中提供内容。

4K20
领券