怎么拿下Android开发Android面试题?(一)

Hello,之前更新了面试中的Android的Java面试部分,这里会更新关于Android部分的面试题。


怎么拿下Android开发Android面试题?(二)

      • 第一节 Android 四大组件相关
        • 1.1 Activity 与 Fragment 之间常见的几种通信方式?
        • 1.2 LaunchMode 的应用场景?
        • 1.3 BroadcastReceiver 与
        • 1.4 对于 Context,你了解多少?

第一节 Android 四大组件相关

1.1 Activity 与 Fragment 之间常见的几种通信方式?

viewModel 做数据管理,activity 和 fragment 公用同个
viewModel 实现数据传递

1.2 LaunchMode 的应用场景?

LaunchMode 有四种,分别为 Standard, SingleTop,
SingleTask 和 SingleInstance,下面说一下具体使用场景:
Standard:
Standard模式是系统默认的启动模式,一般我们 app 中
大部分页面都是由该模式的页面构成的,比较常见的场景
是:社交应用中,点击查看用户A信息->查看用户A 粉丝
->在粉丝中挑选查看用户B信息->查看用户A粉丝… 这种
情况下一般我们需要保留用户操作 Activity栈的页面所
有执行顺序。
SingleTop:
SingleTop 模式一般常见于社交应用中的通知栏行为功
能,例如:App 用户收到几条好友请求的推送消息,需
要用户点击推送通知进入到请求者个人信息页,将信息页
设置为 SingleTop 模式就可以增强复用性。
SingleTask:
SingleTask 模式一般用作应用的首页,例如浏览器主页,
用户可能从多个应用启动浏览器,但主界面仅仅启
动一次,其余情况都会走onNewIntent,并且会清空主界
面上面的其他页面。
SingleInstance:
SingleInstance 模式常应用于独立栈操作的应用,如闹钟
的提醒页面,当你在A应用中看视频时,闹钟响了, 你
点击闹钟提醒通知后进入提醒详情页面,然后点击返回
就再次回到A的视频页面,这样就不会过多干扰到用户先
前的操作了。

1.3 BroadcastReceiver 与

LocalBroadcastReceiver 有什么区别?
BroadcastReceiver 是跨应用广播,利用Binder机制实现,
支持动态和静态两种方式注册方式。
LocalBroadcastReceiver 是应用内广播,利用Handler 实
现,利用了IntentFilter的match功能,提供消息的发布与
接收功能,实现应用内通信,效率和安全性比较 高,
仅支持动态注册。

1.4 对于 Context,你了解多少?

Context也叫上下文,是有关应用程序环境的全局信息的接
口。这是一个抽象类, 它允许访问特定于应用程序的资源和
类,以及对应用程序级操作的调用,比如启动活动,发送广
播和接收意图等;
Activity,Service,Application都是 Context的子类。
享学课堂
Context 的具体实现类是 ContextImpl, 还有一个包装类
ContextWrapper, ContextWrapper 的 子 类 有 Service ,
Application,ContextThemeWrapper, Activity 又是
ContextThemeWrapper 的子类,
ContextThemeWrapper 也可以叫 UI Context,跟UI 操作相关
的最好使用此类 Context。
ContextWrapper 中有个 mBase,这个 mBase 其实是
ContextImpl,它是在Activity, Service, Application 创建时通过
attachBaseContext()方法将各自对对应
ContextImpl 赋值的。对 context 的操作,最终实现都是在
ContextImpl。
对于 startActivity操作

  • 当为Activity Context则可直接使用;
  • 当为其他Context, 则必须带上
    FLAG_ACTIVITY_NEW_TASK flags才能使用;因为非 Activity
    context启动 Activity没有 Activity栈,则无法启动,因此需要
    加开启新的栈;
  • 另外UI相关要Activity中使用. getApplication()和getApplicationContext()区别?
  1. 对于Activity/Service来说,getApplication()和
    getApplicationContext()的返回值完全相同; 除非厂商修改过接口;
  2. BroadcastReceiver在onReceive的过程, 能使用
    getBaseContext().getApplicationContext获取所在
    Application, 而无法使用getApplication;
  3. ContentProvider能使用
    getContext().getApplicationContext()获取所在Application. 绝大多数情况下没有问题, 但是有可能会出现空指针的问题, 情况如下:
    当同一个进程有多个apk的情况下, 对于第二个apk是由
    provider方式拉起的, 前面介绍过provider创建过程并不
    会初始化所在application, 此时执行
    getContext().getApplicationContext()返回的结果便是
    NULL. 所以对于这种情况要做好判空.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/45394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程参考 - 在C++移动构造函数声明中使用noexcept

在 C 中,noexcept 是用于表示函数不抛出异常的指定符。它既可用于常规函数,也可用于特殊成员函数,包括构造函数和析构函数。使用 noexcept 可以帮助编译器进行优化,提高代码的安全性和正确性。 In C, noexcept is a specifier use…

设计模式的七项原则

文章目录 设计模式的七项原则单一职责原则接口隔离原则依赖倒置里氏替换原则开闭原则迪米特法则复用合成原则 设计模式的七项原则 分别为 单一职责原则接口隔离原则依赖倒置里氏替换原则开闭原则迪米特法则复用合成原则 单一职责原则 一个类负责一个职责,不可以…

解决configure: error: Unexpected output of ‘arch‘ on OSX

最近很好高兴用上了新版的macbook(芯片:Apple M3 Pro,操作系统:14.3)。 不高兴的是遇到了不兼容的问题。所以选型还是成熟的技术是关键。 电脑里用pyenv 工具管理多个版本的python。 命令:pyenv install x…

FX110网:香港证监会对Yomaex等多家虚拟资产交易平台发出警告

近日,香港证券及期货事务监察委员会(香港证监会,SFC)对虚拟资产交易平台Yomaex发出警告,运营网址为yomaexd.com.该平台曾多次被FX110网发文曝光。相关阅读 《Yomaex平台“高额回报”是“高级陷阱”,公务员也…

Mybatis-plus乐观锁的实现

第一步:在springboot启动类 的拦截器中添加乐观锁Bean public MybatisPlusInterceptor plusInterceptor(){MybatisPlusInterceptor mybatisPlusInterceptor new MybatisPlusInterceptor();//分页插件mybatisPlusInterceptor.addInnerInterceptor(new PaginationInn…

Java中Timer定时器的使用

定时器Timer 概述:开发中,有时候我们会需要一些周期性的操作,每隔一段时间去做一件事,在Java中可以通过Timer定时器去实现。Timer是一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次&#xff0c…

Java Redis多限流

在Java中实现Redis多限流通常涉及使用Redis的某些特性,如INCR、EXPIRE、Lua脚本或者更高级的Redis数据结构如Redis Bitmaps、Redis Streams结合Redis Pub/Sub,或者使用Redis的第三方库如Redis Rate Limiter(基于Lua脚本或Redis自身功能实现&a…

解决WSL2突然没网络问题

解决WSL2突然没网络问题 在使用Windows Subsystem for Linux(WSL)时,有时可能会遇到网络连接问题。以下步骤可以帮助你解决这些问题。 一、启动命令提示符(cmd) 1. 关闭WSL 在开始任何网络配置前,先关闭…

Oracle11g_RAC for vmware workstation 安装教程(on suse11)

一、前言 本文介绍在vmware workstation环境下,基于suse11sp1操作系统安装Oracle11g RACASM 数据库(两节点)。 1.1 RAC中的基本概念 安装ORACLE RACASM前,您可能需要事先简要的了解RAC,CRS,ASM的概念。 1.1…

easyExcel 不规则模板导入数据

文章目录 前言一、需求和效果二、难点和思路三、全部代码踩坑 前言 之前分享的 EasyExcel 批量导入并校验数据,仅支持规则excel,即首行表头,下面对应数据,无合并单元格情况。 本篇主要解决问题: 模板excel 表头不在首…

【python】 对上市银行的年报信息进行语义挖掘,计算各银行年报中与金融科技有关的关键词的词向量的余弦相似性,衡量银行的金融科技发展程度。

目录 引言 文本预处理 数据收集 ​编辑​编辑 文本清洗 词向量的训练 Word2Vec 的两种主要模型 Word2Vec 的工作原理 训练过程 Word2Vec 的应用 训练模型 建立银行应用金融科技的关键词词库 关键词 计算余弦相似度 统计关键词词频 引言 随着金融科技的迅猛发展&a…

在Linux系统,高效管理Python数据采集程序!

在当今数字化时代,数据的获取和处理变得至关重要。Python 凭借其强大的功能和丰富的库,成为了数据采集的热门选择。而 Linux 系统以其稳定性和高效性,为 Python 数据采集程序的运行提供了理想的环境。 一、Anaconda 的安装 Anaconda 是一个包…

react多级组件间如何传递props

1.使用props属性一级级传递 针对父&#xff0c;子&#xff0c;孙子&#xff0c;如何实现将props从父级传递给孙子。 父&#xff1a; <ParentComponent parent{this} /> //传递this子&#xff1a; <childComponent propsContext{this.props.parent} />孙子&#x…

前端面试题54(断点续传讲解)

断点续传是一种在上传或下载大文件时&#xff0c;如果因为网络问题中断&#xff0c;可以从已经上传或下载的部分继续&#xff0c;而不是重新开始的技术。这对于提高用户体验和节省带宽非常有帮助。下面我将分别从HTTP协议层面、前端实现思路以及一个简单的前端实现示例来讲解断…

【代码随想录算法训练营第六十五天|卡码网94.城市间货物运输IIIIII】

文章目录 94.城市间货物运输ISPFA(bellman_ford队列优化)Bellman_ford判断负权回路 96.城市间货物运输IIIBellman_ford 94.城市间货物运输I SPFA(bellman_ford队列优化) 在bellman_ford的基础上&#xff0c;在每次松弛的时候&#xff0c;只有和前面的结点相连的边的松弛才是有…

linux权限深度解析——探索原理

前言&#xff1a;本节内容主要讲述的是linux权限相关的内容&#xff0c; linux的权限如果使用root账号是感受不到的&#xff0c; 所以我们要使用普通账号对本节相关内容进行学习&#xff0c;以及一些实验的测试。 然后&#xff0c; 通过linux权限的学习我们可以知道为什么有时候…

合合TextIn - 大模型加速器

TextIn是合合信息旗下的智能文档处理平台&#xff0c;在智能文字识别领域深耕17年&#xff0c;致力于图像处理、模式识别、神经网络、深度学习、STR、NLP、知识图谱等人工智能领域研究。凭借行业领先的技术实力&#xff0c;为扫描全能王、名片全能王等智能文字识别产品提供强大…

使用GPT-4和ChatGPT构建应用项目

文章目录 项目1:构建新闻稿生成器项目2:YouTube视频摘要项目3:打造《塞尔达传说:旷野之息》专家项目4:语音控制项目1:构建新闻稿生成器 GPT-4和ChatGPT等LLM专用于生成文本。我们可以使用GPT-4和ChatGPT在各种场景中生成文本,举例如下。 电子邮件合同或正式文档创意写作…

SpringBoot相关

SpringBoot 1. what springboot也是spring公司开发的一款框架。为了简化spring项目的初始化搭建的。 spring项目搭建的缺点&#xff1a; 配置麻烦依赖繁多tomcat启动慢 2 .springboot的特点(why) 自动配置 springboot的自动配置是一个运行时(更准确地说&#xff0c;是应用程…

关于斯坦福TTT,大家难道没啥可唠的嘛~?

TTT与transformer也好或manba也好它们之间背后的本质思想&#xff0c;表面上来看是对上下文进行状态表征压缩&#xff0c;再细想来看&#xff0c;均是一种对输入自身结构的一种线性建模变换&#xff0c;不过三者间所采用线性建模方法和策略各有不同和优劣&#xff0c;而TTT在这…