唐傲-不再因为别人过得好而焦虑.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
唐傲-不再因为别人过得好而焦虑

联系我们 唐傲:tangao@ 孙韶言:sunshy@ 王昊禹:wamhoyle@ 我们的网站: 轻约会: 所有相关资源随后会放在wessar网站上 大家好,非常高兴大家能来参加今天的培训讲座.我们的讲座是一个系列,今天的是系列的第六堂课,之前有 * * * * Activity的生命周期 在Activity从建立到销毁的过程在需要在不同的阶段调用7个生命周期方法 protected void onCreate(Bundle savedInstanceState) protected void onStart( ) protected void onResume( ) protected void onPause( ) protected void onStop( ) protected void onRestart( ) protected void onDestroy( ) Activity的生命周期 4各阶段: 启动Activity Activity失去焦点 Activity重获焦点 关闭Activity Activity — launchMode 在AndroidManifest.xml中的activity标签下,属性launchMode 启动模式——standard(缺省) ,singleTask, singleInstance, singleTop 为什么重要? 如果在Activities中保存了图片等比较消耗资源的东西,并且都是standard模式,则在不同Activity之间切换可能崩溃(内存泄露) Activity — launchMode Standard 每次都会新建一个Activity实例 singleTask 栈空间简易示意:A -- B – C 最后用startActivity(intent)从C跳到A后,由于栈空间已经存在A的实例,A上面的Activity B和C出栈(即onDestroy销毁),A置于栈顶 如果A中重写了onNewIntent(...)方法,会同时接到C跳A的intent数据 如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候,系统就不会再调用通常情况下我们处理请求数据的onCreate方法,而是调用onNewIntent方法 Activity — launchMode standard Activity — launchMode singleTask Activity — launchMode singleTop 栈空间简易示意:A -- B – C 最后用startActivity(intent)从C跳到A后,即使栈控件已经存在A的实例,Android系统也会重新创建一个A的实例并且置于栈顶,当然重写的onNewIntent(...)方法也不会接到Intent数据, 变成: Activity — launchMode singleInstance (代码跳转逻辑:A -- B -- C -- A -- B -- C .....) 1. 起始Activity非singleInstance (实际跳转顺序:A -- B -- C -- A -- B -- C .....) A,C位于同一栈中,taskId相同, B在另一个栈中,与他们taskId不同,此栈在B未被销毁前只能有B一个Activity(B在创建之后,onNewIntent(...)也可以接到其他Activity跳转的intent数据),整个过程中,B只创建了一次,A与C每次都创建一个实例 2. 起始Activity为singleInstance(实际跳转顺序:A -- B -- C -- A -- C -- A -- C .....) 第一次A -- B -- C 实际跳转完成之后,当从C回到A(A在创建之后,onNewIntent(...)也可以接到其他Activity跳转的intent数据)后,再从A跳B时,却跳到了C页面,依次循环,整个过程中,B只是在一开始创建时出现了一次,之后从A都是直接跳C,A当然是单实例的,但是C也只创建了一次,相当于是单实例 多次跳转按物理返回键时: 如果当前页面是A,则A销毁,出现C,接着C销毁,出现B,B销毁,应用程序结束 如果当前页面是C,则C销毁,出现B,接着B销毁,出现A,A销毁,应用程序结束 Activity — launchMode 总结: standard ?每次都会新建,每个Task都可以有,且每个Task都可以有多个实例(每个Task都可以有,且可以有多个) singleTop 当前实例如果在栈顶,就不新建实例,调用其OnNewIntent。 如不在栈顶,则新建实例?(每个Task都可以有,且可以有多个,在栈顶时可复用) s

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档