Android的4中启动模式
2016-05-22 20:47
525 查看
Android的启动模式有四种: 分别是standard、 singleTop、 singleTask 和singleInstance。
1. standard
Activity默认的启动模式。在这种模式下启动的Activity可以多次实例化。 每次调用startActivity时,会启动一个新的Activity的实例,并置于任务栈的顶部。
2. singleTop
分两种情况处理:如果栈顶已经存在此Activity的实例,会重用此Activity实例,并且调用此实例的onNewIntent()函数
第二种情况,如果栈顶不存在此Activity实例,处理方式同stardard。
3. singleTask
采用此种方式启动Activity,那么在一个任务栈中只能有一个该Activity实例。
第一种情况,如果栈中存在此实例,处理方式同stardard; 如果栈中已经存在此实例,系统会销毁处在该Activity上的所有Activity实例,并且调用该Activity实例的onNewIntent()函数。
第二种情况, 如果栈中没有此实例,处理方式同stardard.
4. singleInstance
系统中只能有一个实例,并且单独处于一个任务栈中。
第一种情况,如果栈中已经存在此实例,回调此实例的onNewIntent()方法。
第二种情况,如果栈中不存在此实例,创建一个新任务栈,并且创建此实例,并置于栈中。
1. standard
Activity默认的启动模式。在这种模式下启动的Activity可以多次实例化。 每次调用startActivity时,会启动一个新的Activity的实例,并置于任务栈的顶部。
2. singleTop
分两种情况处理:如果栈顶已经存在此Activity的实例,会重用此Activity实例,并且调用此实例的onNewIntent()函数
第二种情况,如果栈顶不存在此Activity实例,处理方式同stardard。
3. singleTask
采用此种方式启动Activity,那么在一个任务栈中只能有一个该Activity实例。
第一种情况,如果栈中存在此实例,处理方式同stardard; 如果栈中已经存在此实例,系统会销毁处在该Activity上的所有Activity实例,并且调用该Activity实例的onNewIntent()函数。
第二种情况, 如果栈中没有此实例,处理方式同stardard.
4. singleInstance
系统中只能有一个实例,并且单独处于一个任务栈中。
第一种情况,如果栈中已经存在此实例,回调此实例的onNewIntent()方法。
第二种情况,如果栈中不存在此实例,创建一个新任务栈,并且创建此实例,并置于栈中。
相关文章推荐
- 一个刚到此吧的IT新人,第一次发博客,望大家多多指教
- <Android 基础(一)> Service
- <Android 基础(一)> Service
- java/android 设计模式学习笔记(4)---抽象工厂模式
- Android Dynamic Action(动态Action)—像访问网页一样地访问Activity
- 如何“优雅”地给你的类命名
- onMeasure简单方法 完美解决ListView与ScollView冲突问题!
- Android 学习资源[转]
- [深入理解Android卷二 全文-第五章]深入理解PowerManagerService
- Android----EdgeEffect类边缘效果的实现
- PorterDuffXfermode实现Android刮刮卡效果
- Android日期时间类,解决其他时间类时间会出现误差的bug
- 【Android】安全退出应用程序
- Android中的线程机制(Handler Looper)(二)
- Android Activity生命周期详讲
- Android中 Matrix类
- Notification的几种用法(API不同)
- 关于Activity与Fragment混用中对于startActivityForResult方法的解析
- android中的线程机制
- 【Android 应用开发】GitHub 优秀的 Android 开源项目