Android面试知识----基础篇

1.Activity 生命周期
  • onCreate:创建,初始化
  • onStart:Activity正在启动,此时已处于可见状态,但是没有在前台显示;即Activity已显示,但是无法看见
  • onResume:Activity已在前台可见,可与用户交互
  • onPause:Activity正在停止;onPause方法执行完成后,新Activity的onResume方法才会被执行
  • onStop:Activity不可见,再后台
  • onRestart:Activity由不可见变为可见时,调用
  • onDestroy:销毁Activity
2.Activity A 启动Activity B 各自生命周期(A被B完全覆盖)
  • 1.A onCreate
  • 2.A onStart
  • 3.A onResume
  • 4.A onPause
  • 5.B onCreate
  • 6.B onStart
  • 7.B onResume
  • 8.A onStop

此时点击返回,各自生命周期:

  • B onPause
  • A onRestart
  • A onStart
  • A onResume
  • B onStop
  • B onDestroy
3.Activity A 启动Activity B 各自生命周期(A没有被B完全覆盖)
  • A onPause
  • B onCreate
  • B onStart
  • B onResume

点击返回:

  • B onPause
  • A onResume
  • B onStop
  • B onDestroy
4.Fragment 生命周期
  • onAttach :fragment关联到activity,这个时候activity已经传进来,可以获得Activity传来的值
  • onCreate :创建fragment
  • onCreateView :加载Fragment布局,尽量不要写耗时操作,越快越好
  • onActivityCreated :当Activity中的onCreate方法执行完后调用,在onActivityCreate()调用之前,activity的onCreate还没有完成,所以不能在onCreateView中进行与Activity有交互的UI操作,UI交互操作可以放在onActivityCreated里进行
  • onStart :Fragment可见
  • onResume :Fragment进入前台,可获取焦点时激活
  • onPause :用户离开这个Fragment
  • onStop :Fragment不可见
  • onDestroyView :Fragment中布局被移除,销毁相关联的UI布局,清除所有和视图相关的资源
  • onDestroy :销毁Fragment对象
  • onDetach :Fragment 和Activity解除关联
5.Fragment add 和replace 的区别

Fragment展示的两种方法:

  • replace :会调用Fragment的生命周期,也就是说它会销毁视图,重新加载
  • add hide :就是显示隐藏Fragment,会走onHiddenChanged 方法
6.Activity启动模式
  • standard:默认启动模式,即标准模式;每次启动一个Activity都会重写创建一个新的实例;
  • singleTop:栈顶复用模式;如果新的Activity已经位于栈顶,那么这个Activity不会被重新创建,同时它的onNewIntent方法调用;standard和singleTop启动模式都是在原任务栈中新建Activity实例,不会启动新的task
  • singleTask:栈内复用模式;如果栈中存在这个Activity的实例就会复用这个Activity,不管它是否位于栈顶,复用时会将它上面的Activity全部出栈,并且会回调该实例的onNewIntent
  • singleInstance:全局唯一模式;该模式具备singleTask所有特性,区别是,这种模式下Activity会单独占用一个Task栈,具有全局唯一性
7.强引用、软引用、弱引用
  • 强引用:内存不足,也不会回收
  • 软引用(SoftReference):如果内存不足,会回收
  • 弱引用(WeakReference):JVM进行垃圾回收时,不管是否内存不足,都会回收
  • 虚引用(PhantoReference):必须和引用队列关联使用
8.Service 启动方式
  • startService():
    • 生命周期:onCreate-->onStartCommand-->onDestory
    • 如果服务已启动,则不会重复执行onCreate,而是会调用onStart和onStartCommand
    • 一旦服务开启,和开启者就没有任何关系;开启者不能调用服务里的方法
  • bindService():
    • 生命周期:onCreate-->onBind-->onUnBind-->onDestroy
    • 绑定服务不会调用onStart或者onStartCommand
    • bind方式开启服务,绑定服务,如果绑定者挂掉,服务也会跟着挂掉;绑定者可以调用服务里面的方法
9.View绘制流程
  • measure:从顶层父view向子view递归调用view.measure
  • layout
  • draw
10.Touch事件传递机制
  • dispatchTouchEvent:分发event
  • onInterceptTouchEvent:拦截event;返回true表示拦截,事件将终止向下传递
  • onTouchEvent:处理event;返回true表示处理该事件,事件将终止向上传递
11.几种动画
  • FrameAnimation:逐帧动画;将多张图片组合起来播放
  • TweenAnimation:补间动画;对某个view进行一系列动画,如淡入淡出(Alpha),缩放(Scale),平移(Translate),旋转(Rotate)
  • PropertyAnimation:属性动画;对目标对象进行赋值并修改其属性来实现动画
12.Handler,Looper,Message

http://blog.csdn.net/lmj623565791/article/details/38377229

  • Looper.prepare()在本线程中保存一个Looper实例,然后该实例中保存一个MessageQueue对象;Looper.prepare()在一个线程中只能调用一次,所以MessageQueue在一个线程中只会存在一个;
  • Looper.loop()会让当前线程进入一个无线循环,不断从MessageQueue的实例中读取消息,然后回调msg.target.dispatchMessage(msg)方法;
  • Handler的构造方法,会首先得到当前线程中保存的Looper实例,然后与Looper实例中的MessageQueue相关联;
  • Handler的SendMessage方法,会给msg的target赋值为handler自身,然后加入MessageQueue;
  • 在构造Handler实例时,我们会重写handlerMessage方法,也就是msg.target.dispatchMessage(msg)最终调用的方法;
  • Activity启动时,会在当前UI线程调用Looper.prepare()和Looper.loop().
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容