建设网站的效果目的及其功能,北京网站建设公司现状,app定制开发的价格,做网站搭建的公司目录
一、活动的启动模式
1、standard
2、singleTop
3、singleTask
4、singleInstance 本篇文章主要讲解活动的生命周期和活动的启动模式。
一、活动的启动模式 活动的启动模式共有4种#xff0c;分别是standard、singleTop、singleTask和singleInstance#xff1b; 可…目录
一、活动的启动模式
1、standard
2、singleTop
3、singleTask
4、singleInstance 本篇文章主要讲解活动的生命周期和活动的启动模式。
一、活动的启动模式 活动的启动模式共有4种分别是standard、singleTop、singleTask和singleInstance 可在AndroidManifest.xml中通过给activity标签指定android:launchMode属性来选择启动模式。 1、standard 此模式是活动的默认启动模式在此模式下每启动一个新活动它就会入栈并处于栈顶位置对于此模式的活动系统不会在乎这个活动是否在返回栈中存在每次启动都会创建该活动的实例。 下面尝试实验。
java类 添加如下代码点击按钮会再次显式跳转到当前活动主要演示standard模式下的活动。点击三次按钮需要点击三次返回才能退出程序这是因为创建了三个活动实例返回栈中也存在三个此活动实例。 Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_csdn3);Button button1 (Button) findViewById(R.id.button_1);button1.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {Intent intent new Intent(csdn3.this,csdn3.class);startActivity(intent);}});}
2、singleTop 本模式下在启动活动时如果发现返回栈的栈顶已经是该活动则认为可以直接使用它不会再创建新的活动实例。singleTop模式可以很好的解决重复创建栈顶活动问题 与上一模式的不同是点击多次按钮跳转活动后只需点击一次返回键即可退出程序但是只是启动栈顶活动时会这样启动非栈顶活动还是会创建新的活动实例。
3、singleTask singleTop存在的问题是如果活动处于非栈顶位置还是会创建多个活动实例而singleTask模式可以让活动在整个应用程序的上下文中只存在一个实例。在此模式下每次启动该活动时系统首先会在返回栈中检查是否存在该活动实例如果已存在则直接使用该实例并把此活动之上的所有活动出栈如果不存在则创建一个新的活动实例。 下面演示一下从csdn2和csdn3活动间跳转。
修改AndroidManifest.XML中的启动模式 android:launchModesingleTask 部分代码如下
activityandroid:name.csdn2android:launchModesingleTaskandroid:exportedtrueintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activityactivity android:name.csdn3/
csdn2类 Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_csdn2);Button button1 (Button) findViewById(R.id.button_1);button1.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {Intent intent new Intent(csdn2.this,csdn3.class);startActivity(intent);}});}
csdn3类 Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_csdn3);Button button1 (Button) findViewById(R.id.button_1);button1.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {Intent intent new Intent(csdn3.this,csdn2.class);startActivity(intent);}});}
效果如下 如果是默认模式点击跳转csdn3后在点击跳转csdn2需要点击三次返回键可退出程序 而singleTask模式下跳转若干次后只需点击一个返回键即可退出程序。 4、singleInstance 此模式比较复杂假想以下场景有一个活动允许其他程序调用如果想实现其他程序和我们程序共享这个活动实例如何实现singleInstance模式可解决此问题此模式下会有一个单独的返回栈来管理这个活动不管是哪个应用程序公用一个返回栈。 希望本文章对你有帮助如果你对Android开发感兴趣请持续关注本专栏帮助你从入门到项目实战。