Activity的四种启动模式
来源:互联网 发布:psd免费源码社区 编辑:程序博客网 时间:2024/06/06 00:23
Activity的启动模式有四种,分别是standard,singleTop,singleTask和singleInstance。
1:standard模式:
standard是Activity默认的启动模式,在不指定Activity启动模式的情况下,所有Activity使用的都是standard模式。在standard模式下,每当启动一个新的Activity,它就进入任务栈,并处于栈顶的位置,对于使用standard模式的Activity,系统不会判断该Activity在栈中是否存在,每次启动都会创建一个新的实例。
从图中可以看出,在standard启动模式下Activity01最先进栈,其次是Activity02,最后是Activity03;出栈时,Activity03最先出栈,其次是Activity02,最后是Activity01,满足“先进后出”的原则。
在Android Studio下输入代码:
public class FirstActivity extends AppCompatActivity { private Button btnClick; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); Log.d("FirstActivity",this.toString()); btnClick=(Button)findViewById(R.id.btnClick); btnClick.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Intent intent=new Intent(FirstActivity.this,FirstActivity.class); startActivity(intent); } }); }}
运行后
点三次TOFIRST按钮,然后发现三次才能退出。
2:singleTop模式:
当启动的Activity已经位于栈顶时,则直接使用它不创建新的实例。如果启动的Activity没有位于栈顶时,则创建一个新的实例位于栈顶。
从图中可以看出,当前栈顶的中的元素是Activity03,如果再次启动的界面还是Activity03,则复用当前栈顶的Activity实例,如果再次启动的界面没有位于栈顶,则会重新创建一个实例。
3:singleTask模式:
如果希望Activity在整个应用程序中只存在一个实例,可以使用singleTask模式,当Activity的启动模式指定为singleTask,每次启动该Activity时,系统首先会检查栈中是否存在该Activity的实例,如果发现已经存在则直接使用该实例,并将当前Activity之上的所有Activity出栈,如果没有发现则创建一个新的实例。
从图中可以看出,当再次启动Activity02时,并没有新创建实例,而是将Activity03实例移除,复用Activity02实例,这就是singleTask模式,让某个Activity在当前栈中只存在一个实例。
4:singleinstance模式:
singleinstance模式加载Activity时,无论从哪个任务栈中启动该Activity,只会创建一个Activity实例,并且会使用一个全新的任务栈来装载该Activity实例。
- Activity的四种启动模式
- Activity的四种启动模式
- Activity的四种启动模式2
- Activity的四种启动模式
- activity的四种启动模式
- Activity启动的四种模式
- Activity的四种启动模式
- activity 的四种启动模式
- activity 的四种启动模式
- 分析Activity的四种启动模式
- Activity的四种启动模式
- Activity的四种启动模式
- Activity的四种启动模式
- Activity 四种启动模式的区别
- Activity的四种启动模式
- activity 的四种启动模式
- Activity的四种启动模式
- Activity的四种启动模式(LaunchMode)
- 数据库连接驱动
- 【CDOJ】渐变字符串
- C#126课的主要内容
- React+Redux 打造 “NEWS EARLY” 单页应用 一个项目理解最前沿技术栈真谛
- 翻转链表
- Activity的四种启动模式
- c3p0连接池配置和Dao使用JdbcTemplate模板
- 基础练习 01字串
- 数据库三大范式详解
- 【MySQL】关于字符集和其排序问题
- 作业5.174:链表中倒数第n个节点
- hadoop环境搭建思维导图
- 六、基于xml的bean实例化和依赖注入
- 【图像处理】透视变换 Perspective Transformation