Android面试题总结(不定期更新、附答案)
1.Activity的启动模式?
activity一共有4种启动模式:standard、singleTop singleTask 、singleInstance
standard:(标准模式)默认的就是这种启动模式 ,每次都会new一个activity的实例
singleTop: (栈顶复用模式)该模式会判断需要启动的activity是否位于栈顶,如果不是位于栈顶的话会重新实例化一个activity,可能或出现一个任务栈里面出现多个相同的activity。
singleTask:(栈内复用模式)singleTask启动模式启动Activity时,首先会根据taskAffinity去寻找当前是否存在一个对应名字的任务栈,不设置的话为默认的包名。
不存在任务栈 ----->新建任务栈,实例化activity并且入栈。
存在任务栈----->判断任务栈中有否有该activity的实例
有实例---->则将它上面的Activity实例都出栈,然后回调启动的Activity实例的onNewIntent方法
没有实例--->实例化一个activity并且入栈。
singleInstance:(全局唯一模式)整个手机操作系统只有一个实例,不同的应用去打开这个activity公用同一个activity。
2.什么是ANR?如何避免?
ANR:Android Not Responsing(安卓无响应),因为Android activity默认响应时间是5s,broadcast10s,超过时间就会出现弹框提示。
ANR产生的主要原因是在ui线程中执行了耗时的操作。主线程阻塞开辟子线程去执行耗时操作,cpu满负荷,io阻塞的话也是开辟子线程,内存泄漏的话需要具体原因具体分析。
3.Android消息异步处理的有几种方式?
两种:1.handler+Thread 2.AsyncTask(本质也是第一种)
4.如何保证service不被杀死?
提高进程的优先级,降低进程被杀死的概率。
- 利用activity提升优先级,监控手机锁屏解锁事件,在屏幕锁屏时启动1个像素的 Activity,在用户解锁时将 Activity 销毁掉。注意该 Activity 需设计成用户无感知。
利用 Notification 提升权限,Android 中 Service 的优先级为4,通过 setForeground 接口可以将后台 Service 设置为前台 Service,使进程的优先级由4提升为2,从而使进程的优先级仅仅低于用户当前正在交互的进程,与可见进程优先级一致,使进程被杀死的概率大大降低。
在进程被杀死的同时进行拉活。
- onDestroy方法里重启service:service +broadcast 方式,就是当service走ondestory的时候,发送一个自定义的广播,当收到广播的时候,重新启动service;
- 注册高频率广播接收器,唤起进程。如网络变化,解锁屏幕,开机等。
Android面试题总结(不定期更新、附答案)的更多相关文章
- 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的
===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦]下载地址 http://www.eoeand ...
- 经典面试题(二)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
1.正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b,需要计算出Q中的前几项, 例如,当a=3,b=5,N=6时,序列为3,5,6,9,10,12 (1).设计一个函数void ...
- Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本
Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本 前言 序言 再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点. 适合阅读人群 J ...
- Android面试题收集(有具体答案)
Android面试题目及其答案 1.Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机.每个Android应用程序都在它自己的进程中执行,都 ...
- 100道Java基础面试题收集整理(附答案)
不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...
- Java面试题大汇总(附答案)
下列面试题都是在网上收集的,本人抱着学习的态度找了下参考答案,有不足的地方还请指正,更多精彩内容可以关注我的微信公众号:Java团长 相关概念 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知 ...
- Java面试题汇总---升级版(附答案)
前几天写了Java面试题汇总---基础版,总结了面试中常见的问题及答案,那我今天基于昨天的话题做一次升级,也就是说,求职者除了要学习了解哪些常见的基础面试题之外,还得准备些什么呢? 对有工作经验的求职 ...
- 2020年春招面试必备Spring系列面试题129道(附答案解析)
前言 关于Spring的知识总结了个思维导图分享给大家 1.不同版本的 Spring Framework 有哪些主要功能? 2.什么是 Spring Framework? Spring 是一个 ...
- Android Studio 插件(不定期更新)
GsonFormat 根据JSONObject格式的字符串,自动生成实体类参数. 安装 1.Android studio File->Settings-->Plugins -->in ...
- 最新最全的Java面试题整理(内附答案)
Java基础知识篇 面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用面向过程开发, ...
随机推荐
- Zookeeper-watcher机制源码分析(二)
服务端接收请求处理流程 服务端有一个NettyServerCnxn类,用来处理客户端发送过来的请求 NettyServerCnxn public void receiveMessage(Channel ...
- mysql 开发基础系列6 数值与日期函数
一. 数值函数 1. abs(x) 返回x的绝对值 SELECT ABS(-0.8),ABS(0.8); 2.ceil(x) 返回大于x的最大整数 SELECT CEIL(-0.8),CEIL(0. ...
- Android--多线程之AsyncTask
前言 本片博客将介绍AsyncTask的使用,之前有介绍过线程和进程.而在AsyncTask中,运行在用户界面中,执行异步操作,并且把执行结果发布在UI线程上,且也不需要处理线程和Handler.在本 ...
- Js中处理日期加减天数
Js的处理日期还是很方便的. 一. 格式化日期为2017-07-04的格式 function formatTime(date) { var year = date.getFullYear(); var ...
- Python快速学习07:文本文件的操作
作者:Jeff Lee 出处:http://www.cnblogs.com/Alandre/ 欢迎转载,也请保留这段声明.谢谢! 系列文章:[传送门] Python具有基本的文本文件读写功能.Pyth ...
- 2014--My Plan
写于2014/1/10 从2014年开始我每年规划自己的life,每年10个plans. 回忆2013: 2013年,改变了很多.准确的说,那10个月,像个漫长的旅程,像个人生的转折点,应该可以这么说 ...
- vue路由对不同界面进行传参及跳转的总结
最近在做一个公众号的商城项目,主要用的VUE+MUI,其实今天这个点对于有过项目经验的前端工作者来说是最基础的,但也是必须要掌握的,今天小编主要是记录下传参和跳转的一些总结(仅供参考). 首先我们先上 ...
- 【原创】Git删除暂存区或版本库中的文件
0 基础 我们知道Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited),下面只是简述下Git的大概工作流程,详细的可以参见本博客的 ...
- Linux常用命令之压缩和解压缩命令
目录 1.压缩解压缩格式 .gz 一.将文件压缩为 .gz 格式,只能压缩文件:gzip 二.将 .gz 文件解压:gunzip 2.压缩解压缩格式 .tar.gz 一.将文件或目录压缩为 .tar. ...
- 为什么你作为一个.NET的程序员工资那么低?
最近看到很多抱怨贴,也许有一定的道理,但是你想过没,为什么大部分.NET程序员工资相对低?我个人是这么看的: 大批半罐子水的程序员,永远被局限在.NET的原始的小圈圈里.前端不会(你放弃了一项很重要的 ...