android 2018 面试题
四大组件:activity、service、content provider、broadcast receiver
【一】Activity
1.生命周期
onCreate:表示activity正在被创建(此方法中可以做一些初始化工作)
onRestart:表示activity正在被重新启动,当前activity由不可见变为可见状态时,会被调用
onStart:表示activity正在被启动,这时activity已经可见了,但是没有出现在前台,无法与用户交互
onResume:表示activity已经可见了,位于前台,可以与用户交互了
onPause:表示activity正在停止
onstop:
ondestory:
2.异常情况下生命周期分析
activity在异常情况下终止时,系统会调用onSaveInstanceState来保持当前activity的状态;
activity在重新创建后,系统胡调用onRestoreInstanceState,并且把activity销毁时所保存的Bundle对象作为参数同时传给onCreate和onRestoreInstanceState方法
3.activity的加载模式
standard:默认模式
singleTop:栈顶模式(activity在栈顶就复用,不在就重建) 适应的场景:推送消息的展示页
singleTask:栈内复用模式 栈中不会有重复的instance,重用时会干掉头上所有的activity 适应的场景:程序的入口,用在启动页和首页
singleInstance:单实例模式 重新开辟新的任务栈 适应的场景:与程序分离的页面(类似闹钟的提示)
【二】广播
广播可以来自系统,还可以来自其他app;
广播分为有序广播和无序广播;
Intent是用来发送广播的,BroadcastReceiver是来接受广播的
动态注册必须等到app启动后才能收到广播,静态注册可以实现未启动应用也可以接受广播;
【三】service
1.清单文件的属性
exported:代表是否能被其他应用隐式调用
process:是否需要在单独的进程中运行
enable:是否可以被系统实例化
2.如何保证服务不被杀死
因内存不足杀死服务:可将onStartCommand方法的返回值设置为Start_sticky,表示服务在内存资源紧张时被杀死后,会在内存资源足够时再恢复;也可以将服务设置为前台服务,拥有较高的比较级,这样在内存资源紧张时也不会被杀掉
用户手动干预杀死服务:非强制性关闭服务,会走生命周期,onDestory方法会被调用,可以在此方法中发送广播,重新启动(为了程序更健全,我们可开两个服务,相互监听,相互启动,服务A监听B的广播来启动B,服务B监听A的广播来启动A)
3.服务有两种状态:启动状态和绑定状态
startservice和bindservice的区别:当服务是started状态时,其生命周期与启动他的组件无关,并且可以在后台无限期运行,即使启动服务的组件被销毁,因此服务需要在完成任务后,调用stopself方法停止,或有其他组件调用stopservice方法停止;当服务是binded状态时,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止。
android 2018 面试题的更多相关文章
- Android&Java面试题大全—金九银十面试必备
声明本文由作者:Man不经心授权转载,转载请联系原文作者原文链接:https://www.jianshu.com/p/375ad14096b3, 类加载过程 Java 中类加载分为 3 个步骤:加载. ...
- 【Android】一道Android OpenGL笔试题
一道Android OpenGL笔试题 SkySeraph May. 5th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.sky ...
- Android开发面试经——4.常见Android进阶笔试题(更新中...)
Android开发(29) 版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...
- Android 简历+面试题 汇总
1.教你写简历 1.1.你真的会写简历吗? 1.2.80%以上简历都是不合格的 1.3.推荐两个技术简历模板 1.4.关于程序员求职简历 1.5.程序员简历模板列表 2.面试题 2.1.国内一线互联网 ...
- android 常见面试题以及答案
http://blog.csdn.net/bobo1808/article/details/6783344 1. 请描述下Activity的生命周期.2. 如果后台的Activity由于某 ...
- Android开发面试经——2.常见Android基础笔试题
标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报 分类: Android开发(29) 版 ...
- Android采访开发——2.通用Android基础笔试题
注意finddreams博客: http://blog.csdn.net/finddreams/article/details/44219231 正值跳槽的热季.整理一下Android面试中最常考的笔 ...
- 网易android开发面试题及心得
前几天面试网易android开发,总体感觉问题难度一般.怪我自己没有好好梳理知识,尤其是基础,后面就没消息了... 笔试: 1.描述Activity 生命周期 2.什么是ANR,如何规避? 3.描述a ...
- Android高级工程师面试题整理
这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司面试被问到的题目.熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率. 主要分为以下几部分: (1)java ...
随机推荐
- AngularJS指令基础(一)
AngularJS指令基础(一) 1.什么是指令:粗暴的理解就是,自定义HTML标签.专业理解是指,angularJS扩展具有自定义功能的HTML元素的途径. 2.什么时候用到指令:需求是变化的.多样 ...
- js实现多个小球碰撞
实现思路:小球的移动,是通过改变小球的left和top值来改变,坐标分别为(x,y)当x/y值加到最大,即加到父级的宽度或者高度时,使x值或者y值减小,同理当x值或者y值减到最小时,同样的使x值或者y ...
- 基于tkinter的GUI编程
tkinter:tkinter是绑定了Python的TKGUI工具集,就是Python包装的Tcl代码,通过内嵌在Python解释器内部的Tcl解释器实现的,它是Python标准库的一部分,所以使用它 ...
- Day05(fianl、抽象类、接口)
final关键字修饰的类不能被继承.修改,修饰的方法不能被子类覆盖,修饰的变量(是常量)不能被修改. 抽象类:abstract关键字定义的类 继承树中越是在上方的类越抽象,在解决实际问题时,通常将父类 ...
- python Django2.X,报错 ‘learning_logs ’is not a registered namespace,如何解决?
自己也查阅了自己出现了的问题,其中就有这么个按照书中来写的代码但是Django却是提示了 ‘learning_logs ’is not a registered namespace. 然后错误提示可 ...
- go time模块
package main import ( "fmt" "time") func test() { time.Sleep(time.Millisecond * ...
- redis 实现
/** * Returns a string containing the string representation of each of {@code parts}, using the * pr ...
- 学习easyui的小伙伴有福利了
easy-ui常用属性和方法 css定义与js定义两个版本
- Nessus更新到8.3.0
Nessus更新到8.3.0 更新内容包括: (1)专业版的报告功能更为灵活,允许用户选择包含的信息. (2)提升Nessus Manager的性能. (3)允许扫描模版多次更新. (4)生成报告时, ...
- Spring IoC的原理为什么是反射而不是new
因为Spring在加载类的实例时,我们知道其实是用工厂的方式,给出一个个实例,而在工厂里面,用了单例,但是真正实例化,则是反射的newInstance来创建对象,而不是new. 那么,为什么是反射的n ...