android岗新面试题记录.Gabo_SummerZIPandroid岗新面试题记录.zip 236.18KB 立即下载资源文件列表:ZIP android岗新面试题记录.zip 大约有2个文件 android岗新面试题记录.pdf 248.67KB __MACOSX/._android岗新面试题记录.pdf 350B 资源介绍: 内容包含基础知识及深入理解问题的答案 <link href="/image.php?url=https://csdnimg.cn/release/download_crawler_static/css/base.min.css" rel="stylesheet"/><link href="/image.php?url=https://csdnimg.cn/release/download_crawler_static/css/fancy.min.css" rel="stylesheet"/><link href="/image.php?url=https://csdnimg.cn/release/download_crawler_static/90017749/2/raw.css" rel="stylesheet"/><div id="sidebar" style="display: none"><div id="outline"></div></div><div class="pf w0 h0" data-page-no="1" id="pf1"><div class="pc pc1 w0 h0"><img alt="" class="bi x0 y0 w1 h1" src="/image.php?url=https://csdnimg.cn/release/download_crawler_static/90017749/bg1.jpg"/><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">百度<span class="_ _0"> </span><span class="ff2">Andr<span class="_ _1"></span>oid<span class="_"> </span><span class="ff1">开发面试题</span> </span></div><div class="t m0 x1 h3 y2 ff2 fs0 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h2 y3 ff1 fs0 fc0 sc0 ls0 ws0">本文来自安卓航班网<span class="_ _1"></span>整理搜集<span class="ff2 ls1"> <span class="_ _2"></span><span class="ls0"> <span class="_ _0"> </span><span class="fc1">www<span class="_ _3"></span>.apkwa<span class="_ _1"></span>y<span class="_ _3"></span>.com<span class="fc0"> </span></span></span></span></div><div class="t m0 x1 h3 y4 ff2 fs0 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h2 y5 ff1 fs0 fc0 sc0 ls0 ws0">原文地址:<span class="ff2">ht<span class="_ _1"></span>tp://ww<span class="_ _1"></span>w<span class="_ _3"></span>.apkway<span class="_ _3"></span>.com/f<span class="_ _1"></span>orum.php<span class="_ _1"></span>?mod=viewthr<span class="_ _1"></span>ead&tid=2057 </span></div><div class="t m0 x1 h4 y6 ff3 fs1 fc0 sc0 ls0 ws0">1<span class="ff1">、</span> Android dvm<span class="_ _4"> </span><span class="ff1">的进程和<span class="_ _0"> </span></span>Linux<span class="_ _4"> </span><span class="ff1">的进程</span>, <span class="ff1">应<span class="_ _2"></span>用程序的进程是否为同一个概念</span> </div><div class="t m0 x1 h4 y7 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>DVM<span class="_ _0"> </span><span class="ff1">指<span class="_ _0"> </span></span>dalivk<span class="_ _0"> </span><span class="ff1">的虚拟机。<span class="_ _5"></span>每一个<span class="_ _0"> </span><span class="ff3">Android<span class="_ _0"> </span></span>应用程序都在它自己的进程中运行,</span></div><div class="t m0 x1 h4 y8 ff1 fs1 fc0 sc0 ls0 ws0">都拥有一个独立的<span class="_ _4"> </span><span class="ff3">Dalvik<span class="_ _0"> </span></span>虚拟机实例。<span class="_ _6"></span>而每一个<span class="_ _4"> </span><span class="ff3">DVM<span class="_ _4"> </span></span>都是在<span class="_ _4"> </span><span class="ff3">Linux </span>中的一个进</div><div class="t m0 x1 h4 y9 ff1 fs1 fc0 sc0 ls0 ws0">程,所以说可以认为是同一个概念。<span class="ff3"> </span></div><div class="t m0 x1 h4 ya ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>2<span class="ff1">、</span>sim<span class="_ _0"> </span><span class="ff1">卡的<span class="_ _4"> </span></span>EF <span class="ff1">文件有何作用<span class="_ _2"></span></span> </div><div class="t m0 x1 h4 yb ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>sim<span class="_ _0"> </span><span class="ff1">卡的文件系统有自己规范,主要是为了和手机通讯,<span class="_ _2"></span></span>sim<span class="_ _0"> </span><span class="ff1">本</span> </div><div class="t m0 x1 h4 yc ff1 fs1 fc0 sc0 ls0 ws0">身可以有自己的操作系统,<span class="ff3">EF<span class="_ _4"> </span></span>就是作存储并和手机通讯用的<span class="ff3"> </span></div><div class="t m0 x1 h4 yd ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> </div><div class="t m0 x1 h4 ye ff3 fs1 fc0 sc0 ls0 ws0">3<span class="ff1">、嵌入式操作系统内存管理有哪几种,各有何特性</span> ? <span class="_"> </span> </div><div class="t m0 x1 h4 yf ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">页式,段式,段页,用到了<span class="_ _4"> </span></span>MMU,<span class="ff1">虚拟空间等技术</span> </div><div class="t m0 x1 h4 y10 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> </div><div class="t m0 x1 h4 y11 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>4<span class="ff1">、什么是嵌入式实时操作系统</span>, Android <span class="ff1">操作系统属于实时操作系统吗</span>? </div><div class="t m0 x1 h4 y12 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h5 y13 ff1 fs1 fc0 sc0 ls0 ws0">嵌入式实时操作系统是指当外界事件或数据产生时,<span class="_ _7"></span>能够接受并以足够快的速度</div><div class="t m0 x1 h5 y14 ff1 fs1 fc0 sc0 ls0 ws0">予以处理,<span class="_ _7"></span>其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作</div><div class="t m0 x1 h5 y15 ff1 fs1 fc0 sc0 ls0 ws0">出快速响应,<span class="_ _8"></span>并控制所有实时任务协调一致运行的嵌入式操作系统。<span class="_ _8"></span>主要用于工</div><div class="t m0 x1 h4 y16 ff1 fs1 fc0 sc0 ls0 ws0">业控制、军事设备、<span class="ff3"> </span></div><div class="t m0 x1 h5 y17 ff1 fs1 fc0 sc0 ls0 ws0">航空航天等领域对系统的响应时间有苛刻的要求,<span class="_ _8"></span>这就需要使用实时系统。<span class="_ _8"></span>又可</div><div class="t m0 x1 h4 y18 ff1 fs1 fc0 sc0 ls0 ws0">分为软实时和硬实时两种,而<span class="_ _4"> </span><span class="ff3">android<span class="_ _4"> </span></span>是基于<span class="_ _4"> </span><span class="ff3">linux<span class="_ _4"> </span></span>内核的,因此属<span class="_ _2"></span>于<span class="_ _2"></span><span class="ls2">软实时。<span class="_ _5"></span><span class="ff3 ls0"> </span></span></div><div class="t m0 x1 h4 y19 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y1a ff3 fs1 fc0 sc0 ls0 ws0">5<span class="ff1">、一条最长的短信息约占多少<span class="_ _4"> </span></span>byte? </div><div class="t m0 x1 h4 y1b ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">中文<span class="_ _0"> </span></span>70(<span class="ff1">包括标点<span class="_ _2"></span></span>)<span class="ff1">,英文<span class="_ _0"> </span></span>160<span class="_ _4"> </span><span class="ff1">个字节<span class="_ _2"></span></span> </div><div class="t m0 x1 h4 y1c ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> </div><a class="l"><div class="d m1"></div></a></div><div class="pi" data-data='{"ctm":[1.611792,0.000000,0.000000,1.611792,0.000000,0.000000]}'></div></div><div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="/image.php?url=https://csdnimg.cn/release/download_crawler_static/90017749/bg2.jpg"><div class="t m0 x1 h4 y1d ff3 fs1 fc0 sc0 ls0 ws0">6<span class="ff1">、</span> android<span class="_ _4"> </span><span class="ff1">中的动画有哪几类,它们的特点和区别是什么?</span> </div><div class="t m0 x1 h4 y1e ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">两种,<span class="_ _1"></span>一种是<span class="_ _4"> </span><span class="ff3">Tween<span class="_ _0"> </span></span>动画、还有一种是<span class="_ _4"> </span><span class="ff3">Frame<span class="_ _4"> </span></span>动画。<span class="_ _1"></span><span class="ff3">Tween<span class="_ _4"> </span><span class="ff1">动画,<span class="_ _1"></span>这种实现方</span></span></span></div><div class="t m0 x1 h4 y1f ff1 fs1 fc0 sc0 ls0 ws0">式可以使视图组件移动、<span class="_ _9"></span>放大、<span class="_ _9"></span>缩小以及产生透明度的变化;<span class="_ _9"></span>另一种<span class="_ _0"> </span><span class="ff3">Frame<span class="_ _4"> </span></span>动画,</div><div class="t m0 x1 h4 y20 ff1 fs1 fc0 sc0 ls0 ws0">传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。<span class="ff3"> </span></div><div class="t m0 x1 h4 y21 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y22 ff3 fs1 fc0 sc0 ls0 ws0">7<span class="ff1">、</span>handler<span class="_ _0"> </span><span class="ff1">机制的原理<span class="_ _2"></span></span> </div><div class="t m0 x1 h4 y23 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>andriod<span class="_ _0"> </span><span class="ff1">提供了<span class="_ _2"></span></span> Handler <span class="ff1">和</span> Looper <span class="ff1">来满足线程间的通信。</span>Handler <span class="ff1">先进先</span></div><div class="t m0 x1 h4 y24 ff1 fs1 fc0 sc0 ls0 ws0">出原则。<span class="_ _7"></span><span class="ff3">Looper<span class="_ _4"> </span><span class="ff1">类用来管理特定线程内对象之间的消息交换<span class="_ _2"></span></span>(Message <span class="_ _a"></span>Exchange)<span class="ff1">。<span class="_ _b"></span><span class="ff3"> </span></span></span></div><div class="t m0 x1 h4 y25 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>1<span class="ff1">)</span>Looper: <span class="ff1">一个线程可以产生一个<span class="_ _4"> </span></span>Looper<span class="_ _4"> </span><span class="ff1">对象,由它来管理此线程里的</span></div><div class="t m0 x1 h4 y26 ff3 fs1 fc0 sc0 ls0 ws0">Message Queue(<span class="ff1">消息队列</span>)<span class="ff1">。</span> </div><div class="t m0 x1 h4 y27 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>2<span class="ff1">)<span class="_ _8"></span><span class="ff3">Handler: <span class="ff1">你可以构造<span class="_ _4"> </span></span>Handler<span class="_ _0"> </span><span class="ff1">对象来<span class="_ _2"></span>与<span class="_ _c"> </span></span>Looper<span class="_ _0"> </span><span class="ff1">沟通,<span class="_ _8"></span>以便<span class="_ _4"> </span><span class="ff3">pus<span class="_ _2"></span>h<span class="_ _4"> </span></span>新消息到</span></span></span></div><div class="t m0 x1 h4 y28 ff3 fs1 fc0 sc0 ls0 ws0">Message Queue<span class="_ _4"> </span><span class="ff1">里;或者接收<span class="_ _0"> </span></span>Looper<span class="_ _c"> </span><span class="ff1">从<span class="_ _4"> </span></span>Messa<span class="_ _2"></span>ge Queue<span class="_ _0"> </span><span class="ff1">取出</span>)<span class="ff1">所送来的消息。</span> </div><div class="t m0 x1 h4 y29 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>3<span class="ff1">)</span> Message Queue(<span class="ff1">消息队列</span>):<span class="ff1">用来存放线程放入的消息。</span> </div><div class="t m0 x1 h4 y2a ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>4<span class="ff1">)线程:</span>UI thread <span class="ff1">通常就是<span class="_ _4"> </span></span>main thread<span class="ff1">,而<span class="_ _4"> </span></span>Android<span class="_ _0"> </span><span class="ff1">启动程序时会替它</span></div><div class="t m0 x1 h4 yf ff1 fs1 fc0 sc0 ls0 ws0">建立一个<span class="_ _0"> </span><span class="ff3">Message Queue<span class="_ _2"></span></span>。<span class="ff3"> </span></div><div class="t m0 x1 h4 y10 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span>8<span class="ff1">、说说<span class="_ _4"> </span></span>mvc<span class="_ _0"> </span><span class="ff1">模式的原理,它在<span class="_ _4"> </span></span>androi<span class="_ _2"></span>d<span class="_ _c"> </span><span class="ff1">中的运用</span> </div><div class="t m0 x1 h4 y11 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> </div><div class="t m0 x1 h4 y2b ff1 fs1 fc0 sc0 ls0 ws0">MVC(Model_view_contraller)” 模型<span class="ff3">_</span>视图<span class="ff3">_</span>控制器”。<span class="_ _6"></span><span class="ff3"> MVC<span class="_ _0"> </span><span class="ff1">应用程序总是由这</span></span></div><div class="t m0 x1 h4 y2c ff1 fs1 fc0 sc0 ls0 ws0">三个部分组成。<span class="ff3">Event(</span>事件<span class="ff3">)</span>导致<span class="_ _4"> </span><span class="ff3">Controller<span class="_ _4"> </span></span>改变<span class="_ _4"> </span><span class="ff3">Model<span class="_ _4"> </span></span>或<span class="_ _4"> </span><span class="ff3">View</span>,或者同时改</div><div class="t m0 x1 h4 y2d ff1 fs1 fc0 sc0 ls0 ws0">变两者。<span class="_ _3"></span>只要<span class="ff3"> Controller<span class="_ _0"> </span></span>改变了<span class="_ _4"> </span><span class="ff3">Model<span class="_ _2"></span>s<span class="_ _0"> </span></span>的数<span class="_ _2"></span>据或者属性,<span class="_ _3"></span>所有依赖的<span class="_ _4"> </span><span class="ff3">View<span class="_ _0"> </span></span>都</div><div class="t m0 x1 h4 y2e ff1 fs1 fc0 sc0 ls0 ws0">会自动更新。类似的,只要<span class="_ _4"> </span><span class="ff3">Controller<span class="_ _4"> </span></span>改<span class="ls2">变了<span class="_ _0"> </span></span><span class="ff3">View</span>,<span class="ff3">View<span class="_ _0"> </span></span>会<span class="_ _2"></span><span class="ff3"> </span></div><div class="t m0 x1 h4 y16 ff1 fs1 fc0 sc0 ls0 ws0">从潜在的<span class="_ _0"> </span><span class="ff3">Model<span class="_ _4"> </span></span>中获取数据来刷新自己。<span class="_ _2"></span><span class="ff3"> </span></div><div class="t m0 x1 h4 y2f ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y30 ff3 fs1 fc0 sc0 ls0 ws0">View<span class="_ _0"> </span><span class="ff1">重绘和内存泄露的好像是面试经常问的问题<span class="_ _2"></span></span> </div><div class="t m0 x1 h4 y31 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>1. View<span class="_ _0"> </span><span class="ff1">的刷新<span class="_ _2"></span></span>: </div><div class="t m0 x1 h4 y32 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">在需要刷新的地方</span>,<span class="ff1">使用<span class="_ _4"> </span></span>handle.sendmessage<span class="_ _4"> </span><span class="ff1">发送信息</span>,<span class="ff1">然后在<span class="_ _4"> </span></span>handle<span class="_ _0"> </span><span class="ff1">的</span></div><div class="t m0 x1 h4 y1b ff3 fs1 fc0 sc0 ls0 ws0">getmessage<span class="_ _0"> </span><span class="ff1">里面执行<span class="_ _4"> </span></span>invaliate<span class="_ _4"> </span><span class="ff1 ls2">或者<span class="_ _0"> </span></span>postinv<span class="_ _2"></span>aliate. </div><div class="t m0 x1 h4 y1c ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> </div></div><div class="pi" data-data='{"ctm":[1.611792,0.000000,0.000000,1.611792,0.000000,0.000000]}'></div></div><div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="/image.php?url=https://csdnimg.cn/release/download_crawler_static/90017749/bg3.jpg"><div class="t m0 x1 h4 y1d ff3 fs1 fc0 sc0 ls0 ws0">2. GC<span class="_ _0"> </span><span class="ff1">内存泄露<span class="_ _2"></span></span> </div><div class="t m0 x1 h4 y33 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">出现情况</span>: </div><div class="t m0 x1 h4 y34 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>1.<span class="ff1">数据库的<span class="_ _4"> </span></span>cursor<span class="_ _0"> </span><span class="ff1">没有关闭<span class="_ _2"></span></span> </div><div class="t m0 x1 h4 y35 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>2.<span class="ff1">构造<span class="_ _0"> </span></span>adapter<span class="_ _4"> </span><span class="ff1">时</span>,<span class="ff1">没有使用缓存<span class="_ _4"> </span></span>contentvi<span class="_ _2"></span>ew </div><div class="t m0 x1 h4 y36 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span><span class="ff1">衍生<span class="_ _0"> </span></span>listview<span class="_ _4"> </span><span class="ff1">的优化问题</span>-----<span class="ff1">减少创建<span class="_ _c"> </span></span>view<span class="_ _4"> </span><span class="ff1">的对象</span>,<span class="ff1">充分使用</span></div><div class="t m0 x1 h4 y37 ff3 fs1 fc0 sc0 ls0 ws0">contentview,<span class="ff1">可以使用一静态类来优化处理<span class="_ _4"> </span></span>getview<span class="_ _4"> </span><span class="ff1">的过程</span>/ </div><div class="t m0 x1 h4 y38 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> </div><div class="t m0 x1 h4 y39 ff3 fs1 fc0 sc0 ls0 ws0">3.Bitmap<span class="_ _0"> </span><span class="ff1">对象不使用时采用<span class="_ _4"> </span></span>recycle()<span class="_ _2"></span><span class="ff1">释放内存</span> </div><div class="t m0 x1 h4 y3a ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>4.activity<span class="_ _4"> </span><span class="ff1">中的对象的生命周期大于<span class="_ _4"> </span></span>activity<span class="_ _2"></span> </div><div class="t m0 x1 h4 y3b ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">调试方法</span>: DDMS==> HEAPSZIE==>dataobject==>[Total Size] </div><div class="t m0 x1 h4 y3c ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">还有其他问题</span>,<span class="ff1">大家欢迎提出阿</span>,<span class="ff1">可以是整体架构的</span>,<span class="ff1">还有这个<span class="_ _4"> </span></span>Hal<span class="_ _4"> </span><span class="ff1">层</span>.<span class="_ _2"></span> </div><div class="t m0 x1 h4 y3d ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span><span class="ff1">这篇文章会涉及到以下几个内容</span> </div><div class="t m0 x1 h4 y3e ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y3f ff1 fs1 fc0 sc0 ls0 ws0">一<span class="ff3"> <span class="_"> </span> Activity<span class="_ _4"> </span></span>的生命周期<span class="ff3"> </span></div><div class="t m0 x1 h4 y40 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">二</span> <span class="_"> </span><span class="ff1">让<span class="_ _0"> </span></span>Activity<span class="_ _4"> </span><span class="ff1">变成一个窗口:</span>Activity<span class="_ _c"> </span><span class="ff1">属性设定</span> </div><div class="t m0 x1 h4 y41 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">三</span> <span class="_"> </span><span class="ff1">你后台的<span class="_ _4"> </span></span>Activity<span class="_ _0"> </span><span class="ff1">被系统<span class="_ _2"></span></span> </div><div class="t m0 x1 h4 y42 ff1 fs1 fc0 sc0 ls0 ws0">回收怎么办:<span class="ff3">onSaveInstanceState </span></div><div class="t m0 x1 h4 y43 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> </div><div class="t m0 x1 h4 y44 ff1 fs1 fc0 sc0 ls0 ws0">四<span class="ff3"> <span class="_"> </span></span>调用与被调用:我们的通信使者<span class="ff3"> - Intent </span></div><div class="t m0 x1 h4 y45 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">一</span> Activity<span class="_ _4"> </span><span class="ff1">的生命周期</span> </div><div class="t m0 x1 h4 y46 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span><span class="ff1">和其他手机</span> <span class="_"> </span><span class="ff1">平台</span> <span class="_"> </span><span class="ff1">的应用程序一样,<span class="_ _6"></span><span class="ff3">Android<span class="_ _0"> </span><span class="ff1">的应用程序的生命周期是被统</span></span></span></div><div class="t m0 x1 h5 y47 ff1 fs1 fc0 sc0 ls0 ws0">一掌控的,<span class="_ _6"></span>也就是说我们写的应用程序命运掌握在别人<span class="_ _3"></span>(系统)<span class="_ _6"></span>的手里,<span class="_ _d"></span>我们不</div><div class="t m0 x1 h4 y48 ff1 fs1 fc0 sc0 ls0 ws0">能改变它,只能学习并适应它。<span class="ff3"> </span></div><div class="t m0 x1 h4 y49 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> </div><div class="t m0 x1 h4 y4a ff1 fs1 fc0 sc0 ls0 ws0">简单地说一下为什么是这样:我们手机在运行<span class="ff3"> </span></div></div><div class="pi" data-data='{"ctm":[1.611792,0.000000,0.000000,1.611792,0.000000,0.000000]}'></div></div><div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="/image.php?url=https://csdnimg.cn/release/download_crawler_static/90017749/bg4.jpg"><div class="t m0 x1 h5 y4b ff1 fs1 fc0 sc0 ls0 ws0">一个应用程序的时候,<span class="_ _6"></span>有可能打进来电话发进来短信,<span class="_ _e"></span>或者没有电了,<span class="_ _e"></span>这时候程</div><div class="t m0 x1 h5 y4c ff1 fs1 fc0 sc0 ls0 ws0">序都会被中断,<span class="_ _9"></span>优先去服务电话的基本功能,<span class="_ _7"></span>另<span class="_ _1"></span>外系统也不允许你占用太多资源,</div><div class="t m0 x1 h4 y4d ff1 fs1 fc0 sc0 ls0 ws0">至少要保证电话功能吧<span class="ff3">,</span>所以资源不足的时候也就有可能被干掉。言归正传,</div><div class="t m0 x1 h4 y4e ff3 fs1 fc0 sc0 ls0 ws0">Activity<span class="_ _0"> </span><span class="ff1">的基本生命周期如下代码所示:<span class="_ _2"></span></span> </div><div class="t m0 x1 h4 y4f ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y50 ff3 fs1 fc0 sc0 ls0 ws0">Java <span class="ff1">代码</span> </div><div class="t m0 x1 h4 y51 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span>public class MyActivity extends Activity </div><div class="t m0 x1 h4 y24 ff3 fs1 fc0 sc0 ls0 ws0">{ <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y52 ff3 fs1 fc0 sc0 ls0 ws0">protected void onCreate(Bundle savedInstanceState); <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y53 ff3 fs1 fc0 sc0 ls0 ws0">protected void onStart(); <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y54 ff3 fs1 fc0 sc0 ls0 ws0">protected void onResume(); <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y55 ff3 fs1 fc0 sc0 ls0 ws0">protected void onPause(); <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y56 ff3 fs1 fc0 sc0 ls0 ws0">protected void onStop(); <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y57 ff3 fs1 fc0 sc0 ls0 ws0">protected void onDestroy(); <span class="_"> </span> </div><div class="t m0 x1 h4 y58 ff3 fs1 fc0 sc0 ls0 ws0">} <span class="_"> </span> <span class="_"> </span> </div><div class="t m0 x1 h4 y59 ff1 fs1 fc0 sc0 ls0 ws0">你自己写的<span class="_ _0"> </span><span class="ff3">Activity<span class="_ _4"> </span></span>会按需要<span class="_ _2"></span><span class="ff3"> </span></div><div class="t m0 x1 h4 y5a ff1 fs1 fc0 sc0 ls0 ws0">重<span class="ff3"> </span>载这些方法,<span class="ff3">onCreate<span class="_ _4"> </span></span>是免不了的,在一个<span class="_ _4"> </span><span class="ff3">Activity<span class="_ _0"> </span></span>正常启动的过程中,</div><div class="t m0 x1 h4 y5b ff1 fs1 fc0 sc0 ls0 ws0">他们被调用的顺序是<span class="ff3"> onCreate <span class="_ _e"></span>-> <span class="_ _6"></span>onStart <span class="_ _e"></span>-><span class="_ _2"></span>onResume, <span class="ff1">在<span class="_ _4"> </span></span>Activity<span class="_ _4"> </span><span class="ff1">被干掉的</span></span></div><div class="t m0 x1 h4 y5c ff1 fs1 fc0 sc0 ls0 ws0">时候顺序是<span class="_ _0"> </span><span class="ff3">onPause <span class="_ _8"></span>-> <span class="_ _a"></span>onStop <span class="_ _a"></span>-><span class="_ _1"></span> <span class="_ _a"></span>onDestroy <span class="ff1">,<span class="_ _e"></span>这样就是一个完整的生命周期,</span></span></div><div class="t m0 x1 h4 y5d ff1 fs1 fc0 sc0 ls0 ws0">但是有人问了<span class="ff3"> </span></div><div class="t m0 x1 h5 y5e ff1 fs1 fc0 sc0 ls0 ws0">,<span class="_ _e"></span>程序正运行着呢来电话了,<span class="_ _6"></span>这个程序咋办?中止了呗,<span class="_ _6"></span>如果中止的时候新出的</div><div class="t m0 x1 h4 y5f ff1 fs1 fc0 sc0 ls0 ws0">一个<span class="_ _0"> </span><span class="ff3">Activity<span class="_ _4"> </span></span>是全屏的那么:<span class="ff3">onPause<span class="_ _2"></span>->onStop </span>,恢复的时候</div><div class="t m0 x1 h4 y60 ff3 fs1 fc0 sc0 ls0 ws0">onStart->onResume <span class="ff1">,如果打断</span> </div><div class="t m0 x1 h4 y61 ff1 fs1 fc0 sc0 ls0 ws0">这个应用程序的是一个<span class="_ _4"> </span><span class="ff3">Theme<span class="_ _0"> </span></span>为<span class="_ _4"> </span><span class="ff3">Translucent <span class="_ _2"></span></span>或者<span class="_ _4"> </span><span class="ff3">Dialog </span>的<span class="_ _4"> </span><span class="ff3">Activity<span class="_ _4"> </span></span>那么只</div><div class="t m0 x1 h4 y31 ff1 fs1 fc0 sc0 ls0 ws0">是<span class="_ _0"> </span><span class="ff3">onPause ,<span class="_ _2"></span></span>恢复<span class="ff3"> </span></div><div class="t m0 x1 h4 y62 ff1 fs1 fc0 sc0 ls0 ws0">的时候<span class="_ _0"> </span><span class="ff3">onResume <span class="_ _2"></span></span>。<span class="ff3"> </span></div><div class="t m0 x1 h4 y63 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> </div><div class="t m0 x1 h4 y64 ff1 fs1 fc0 sc0 ls0 ws0">详细介绍一下这几个方法中系统在做什么以及我们应该做什么:<span class="ff3"> </span></div></div><div class="pi" data-data='{"ctm":[1.611792,0.000000,0.000000,1.611792,0.000000,0.000000]}'></div></div>