Android学习教程(二)之Activity启动模式
来源:互联网 发布:微信大屏幕霸屏源码 编辑:程序博客网 时间:2024/06/05 19:13
Android学习之Activity启动模式
- Android学习之Activity启动模式
- 前言
- 例子
- Standard启动模式
- SingleTop启动模式
- SingleTask启动模式
- SingleInstance
- 总结
- 附加知识点
前言
在进行更改Activity的启动模式时,主要是更改androidManifast.xml住文件中的activity的
launchMode属性,launchMode属性值可为:
standardsingleTasksingleTopsingleInstance
其中,launchMode为默认参数。
例子
为方便下面的说明,举个例子:
有两个activity
Aactivity.java:一个按键实现启动Aactivity,另一个按键实现启动Bactivity
相应的layout中有两个按键bt_1,bt_2
//显示当前的栈Id,以及Activity实例的信息,有如下代码: TextView tv = (TextView) findViewById(R.id.textview_1); tv.setText(String.format("TaskID:%s,CurrentActivity:%s",getTaskId(),toString())); /** *启动另一个Aactivity */ findViewById(R.id.bt_1).setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ startActivity(Aactivity.this,Aactivity.class); } }); /** *启动Bactivity */ findViewById(R.id.bt_2).setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ startActivity(Aactivity.this,Bactivity.class); } });
Bactivity.java:实现启动Aactivity
相应的layout中有一个按键bt_1
//显示当前的栈Id,以及Activity实例的信息,有如下代码: TextView tv = (TextView) findViewById(R.id.textview_1); tv.setText(String.format("TaskID:%s,CurrentActivity:%s",getTaskId(),toString())); /** *启动从Bactivity中启动Aactivity */ findViewById(R.id.bt_1).setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ startActivity(Bactivity.this,Aactivity.class); } });
AndroidManifast.xml的launchMode属性值为:standard
1.Standard启动模式
以任务栈的形式进行activity的存储。当一直按Aactivity的bt_1时,会不断的生成Aactivity的实例。
配置如下:
<application …… <activity android:launchMode="standard" android:name=".Aactivity" android:label="@string/title_activity_second" android:theme="@style/AppTheme.NoActionBar"> </activity></application>
2.SingleTop启动模式
如果Aactivity的启动模式设置为SingleTop。那么,会根据Aactivity的位置进行实例的创建。
如果,Aactivity在栈顶,那么之创建单个实例;如果,Aactivity不再栈顶,那么就创建新的实例。
即。如果在Aactivity中点击了bt_2,到了Bactivity,然后,有点击bt_1,创建Aactivity的话,
会创建一个新的Aactivity。
配置代码:
<activity android:launchMode="singleTop" android:name=".Aactivity" android:label="@string/title_activity_second" android:theme="@style/AppTheme.NoActionBar"> </activity>
3.SingleTask启动模式
这种启动模式下,如果,先点击Aactivity的bt_2进入Bactivity中,然后,点击Bactivity的bt_1,
创建Aactivity的话,则会将Bactivity推出栈顶,然后,显示之前的Aactivity实例。
4.SingleInstance
这种启动模式下,如果,创建另一个Activity,那么会创建一个新的Activity实例,并且,该Activity实例会
在一个新的独立的战中。
以上面据的例子解释就是,如果,在Aactivity中,点击那个bt_1,是不会有任何结果的;但是如果,点击bt_2的话,
创建的Bactivity实例所处的栈是和Aactivity所处的栈是完全不同的两个栈。
总结:
Activity的启动模式共有4种,
Standard、SingleTop、SingleTask、SingleInstance
Standard模式:其中,默认是Standard模式,在该模式下,每调用一次startActivity方法就会创建一个Activity实例;
SingleTop模式:当被设置为该模式的Activity在栈顶(当前显示的Activity就是该Activity)时,调
用startActiviy方法不会创建新的Activity,否则,创建新的Activity;
SingleTask模式:只会创建单一的Activity,如果要再次创建同一个Activity,系统会将该Activtiy之上的Activity推出
栈,来显示要创建的Activity。
SingleInstance模式:独立任务栈,同一个类型的Activity会在同一个栈中,且单一独立。如果,要创建另一个新的Activity的实例,会
重新创建一个栈,然后将新的Activity实例放入新的栈中。
附加知识点:
取消Layout界面组件上文字全大写。
android:textAllCaps="false"
欢迎大家转载,转载时请注明出处。
SnowLive’s blogs
http://blog.csdn.net/snowlive
- Android学习教程(二)之Activity启动模式
- android:Activity启动模式之singleTask(二)
- android学习之-activity的启动模式
- 【Android学习】之Activity的启动模式
- Android 学习之Activity的启动模式
- Activity学习(二):Activity的启动模式(转载)
- Activity开发之Activity的启动模式(二)
- 《android 学习》二、Activity的四种启动模式
- Android Activity 启动模式学习
- Android Activity启动模式学习
- Android Activity之启动模式
- 自学Android之Activity:(五)Activity启动模式
- Android实战简易教程<七>(Activity的启动模式)
- Android学习笔记之Activity的启动模式
- Android学习笔记之Activity的生命周期和启动模式
- Android学习笔记之Activity的4种启动模式
- Android学习之路---Activity四种启动模式
- 微子学习Android之Activity启动模式
- 一个简单的android便签app
- 【Unity Shader】Shadow Caster、RenderType和_CameraDepthTexture
- 蓝桥杯模拟赛第五场
- [JZOJ5039]查询
- 使用链表实现栈(C语言)
- Android学习教程(二)之Activity启动模式
- 计算各种图形的周长
- poj_2299 归并排序找逆序数
- 算法训练 寻找数组中最大值
- JZOJ1489.2017.04.02【NOIP 普及组】模拟赛C组 T1区间
- hihocoder 1295 : 数论二·Eular质数筛法
- hdu5066——Harry And Physical Teacher(物理)
- POJ 3281 Dining(网络流)
- 贪心+优先队列(需优化) POJ2010