Android四种启动模式及其注意事项
2015-12-31 11:47
453 查看
一、android四种启动模式的简介
四种启动模式包括standard、singleTask、singleTop、singleInstance如下图所示,在AndroidManifest.xml文件中配置launchMode
二、standard模式详解
普通情况下创建的Activity默认启动模式为standard,即并不用专门去写android:launchMode=”standard”2.1 生命周期的方法执行顺序
创建一个新的Activity①首次打开时,生命周期方法顺序执行onCreate()、onStart()、onResume()
②当此Activity不可见时,如直接按HOME键回到桌面,或者跳转下一个页面(没有进行finish),执行onPause()、onStop()
③当从不可见又回到可见的状态,如按了HOME键以后再打开此应用,或者之前跳转到下一个页面又返回了,这时执行onRestart()、onStart()、onResume()
④从当前Activity可见状态按返回键或用代码执行了finish()方法,会执行onPause()、onStop()、onDestroy()
2.2 多个standard模式的Activity叠加原理
三、singleTop详解
栈顶复用问题。假设有Activity 1、Activity3,Activity1的启动模式设为singleTop,当从1跳到3的时候,其行为与 standard 模式一样。若1处于栈顶,且Activity1一直跳转到Activity1,此时不创建新的实例而使用当前的旧的实例,解决了栈顶多个重复的Activity的问题。
此时有个传值问题,上图中的下面的那个任务栈中,假设3向1跳转时传了一个值 string=haha,则1中get到的string的值就是haha。若1向1跳转的时候改变了这个值,string=hehe ,那么1跳到1后get到的string值是什么呢???当然还是haha了。因为一直用的都是旧实例中的值。
那么有没有办法让得到的string的值为hehe呢?在1的启动模式还是singleTop的情况下,办法还是有的。这里要使用到onNewIntent方法,如下图
从StandardActivity跳转到StandardActivity方法执行顺序为
四、singleTask详解
一个任务栈中共享一个Activity。当然,这里存在与singleTop同样的Activity之间传值的问题。解决方案和上面一样,也用onNewIntent()方法,并setIntent(intent) 。
这里跳转到启动模式为singleTask的Activity的执行顺序为:
这里参考链接onNewIntent的调用时机
五、singleInstance详解
一个Activity占用一个任务栈。六、参考链接
(http://www.360doc.com/content/14/0721/19/15193102_396109773.shtml)(/article/10548644.html)
(/article/5355438.html)
相关文章推荐
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- android应用清除应用缓存原理
- Android SDK no swt-pi-gtk-3550 or swt-pi-gtk in swt.library.path, java.library.path or the jar解决
- (转载)-- android onSaveInstanceState方法
- 关于Android Studio
- Android 内存管理 Environment
- Android调用Java EE+axis2搭建的webservice服务详解
- Android的数据存储
- Android DiskLruCache完全解析,硬盘缓存的最佳方案
- 浅谈Android中的序列化
- 欢迎使用CSDN-markdown编辑器
- Android资源管理框架(Asset Manager)简要介绍和学习计划
- Android屏幕适配
- Android Gradle打渠道包
- Android开发过程中遇到的关于so文件的问题
- [Android Studio] Android studio 多渠道打包(超简洁版)
- Android之屏幕测试
- 关于Android Studio 和 Gradle的那些事儿
- Plugin is too old,please update to a more recent version,or set ANDROID_DAILY_OVERRIDE environment v
- android 数据存储----文件方式 总结