Activity加载模式之singleInstance(单实列模式)
来源:互联网 发布:酷狗网络检测异常 编辑:程序博客网 时间:2024/06/03 17:41
singleInstance(单实列模式):
在这种加载模式下,系统保证无论从哪个Task中启动目标Activity,之后创建一个目标Activity,并会使用一个全新的Task栈来装载Activity实列。
当系统采用singleInstance(单实列模式)启动目标Activity时,可分为如下两种情况:
1:如果将要启动的目标Activity不存在,系统会先创建一个全新的Task,再创建目标Activity的实列,并将它加入新的Task的栈顶。
2:如果将要启动的目标Activity已经存在,无论它为于哪个应用程序中,无论它位于哪个Task中,系统将会把该Activity所在的Task转到前台,从而使该Activity显示出来。
需要指出的是,采用singleInstance(单实列模式)加载Activity总是位于Task栈顶,采用singleInstance(单实列模式)加载Activity所在Task只包含该Activity。
下面举例说明:
public class SingleInstanceTest extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
this.setContentView(layout);
TextView tv = new TextView(this);
tv.setText("Activity为:"+this.toString()
+"\n"+", Tast ID为:"+this.getTaskId());
Button button =new Button(this);
button.setText("启动ThirdActivity");
layout.addView(tv);
layout.addView(button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(SingleInstanceTest.this,
ThirdActivity.class);
startActivity(intent);
}
});
}
}
上面红色粗体字代码指定单击按钮时会启动 ThirdActivity ,将该 ThirdActivity 配置成singleInstance(单实列模式),而且将该Activity的exported属性配置成true——表明该Activity可被其他应用启动。
<activity
android:name="cn.scxh.singleinstance.ThirdActivity"
android:exported="true"
android:label="被启动的界面"
android:launchMode="singleInstance" >
</activity>
public class ThirdActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
this.setContentView(layout);
TextView tv = new TextView(this);
tv.setText("Activity为:"+this.toString()
+"\n"+", Tast ID为:"+this.getTaskId());
Button button =new Button(this);
button.setText("启动SingleInstanceTest");
layout.addView(tv);
layout.addView(button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(ThirdActivity.this,
SingleInstanceTest.class);
startActivity(intent);
}
});
}
}
- Activity加载模式之singleInstance(单实列模式)
- 17 - Activity四种加载模式之SingleInstance
- Activity的加载模式之singleInstance——Android
- android-activity之启动模式singleInstance
- android:Activity启动模式之singleInstance
- <Activity>启动模式之(四) singleInstance
- Activity singleInstance启动模式
- Activity启动模式singleInstance
- Activity的四种加载模式 -- singleTask 和 singleInstance模式
- Activity的四种加载模式 -- singleTask 和 singleInstance模式
- Activity的四种加载模式 -- singleTask 和 singleInstance模式
- Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance
- Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance
- Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance
- Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance
- activity四种加载模式,singleInstance未给出
- Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance
- Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance
- Android各种包的功能预览
- Linux 解决Device eth0 does not seem to be present
- Unity3D Shader 使指定颜色过滤成透明
- IOS SEL (@selector) 原理及使用总结(一)
- 一个空格引起的血案,记在servlet和mysql使用字符串的一次经验
- Activity加载模式之singleInstance(单实列模式)
- 类型推测
- iOS核心动画笔记
- Thinkphp结合dropzone.js做上传功能
- c# 获取主板信息
- 网站优化应注意的事项
- html5知识学习之Video对象的属性autoplay,buffered,controls用法讲解
- Redis在游戏开发中的应用
- 三十立什么、四十惑什么、五十知什么?