【Android】19、活动的启动模式——standard

来源:互联网 发布:大话数据库 pdf百度云 编辑:程序博客网 时间:2024/05/24 01:39

本篇博文最后修改时间:2016年5月16日,23:09。


一、简介

本篇介绍活动的启动模式——standard。


二、实验平台
系统版本:Windows7 家庭普通版 32位操作系统。

三、版权声明
博主:思跡
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.net/omoiato

联系方式:315878825@qq.com

Java零基础入门交流群:541462902


四、standard


1、4种活动的启动模式

standard

singleTop

singleTask

singleInstance


2、如何选择启动模式

可以在AndroidManifest.xml中,

通过给<activity>标签指定android:launchMode属性来选择启动模式。


3、standard

standard 是活动默认的启动模式,在不进行显式指定的情况下,

所有活动都会自动使用这种启动模式。

因此,到目前为止我们写过的所有活动都是使用的standard 模式。

经过上一节的学习,我们已经知道了Android 是使用返回栈来管理活动的,

在standard 模式(即默认情况)下,每当启动一个新的活动,

它就会在返回栈中入栈,并处于栈顶的位置。

对于使用standard 模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,

每次启动都会创建该活动的一个新的实例。

 

4、在ActivityTest 项目的基础体会一下standard 模式

①关闭ActivityLifeCycleTest 项目,打开ActivityTest 项目。


②修改FirstActivity 中onCreate()方法的代码:

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    Log.d("FirstActivity", this.toString());    requestWindowFeature(Window.FEATURE_NO_TITLE);    setContentView(R.layout.first_layout);    Button button1 = (Button) findViewById(R.id.button_1);    button1.setOnClickListener(new OnClickListener()     {        @Override        public void onClick(View v)         {            Intent intent = new Intent(FirstActivity.this, FirstActivity.class);            startActivity(intent);        }    });}


代码看起来有些奇怪吧,在FirstActivity 的基础上启动FirstActivity。

从逻辑上来讲这确实没什么意义,不过我们的重点在于研究standard 模式,

因此不必在意这段代码有什么实际用途。

另外我们还在onCreate()方法中添加了一行打印信息,用于打印当前活动的实例。
现在重新运行程序,然后在FirstActivity 界面连续点击两次按钮,

从打印信息中我们就可以看出,每点击一次按钮就会创建出一个新的FirstActivity 实例。
此时返回栈中也会存在三个FirstActivity的实例,因此你需要连按三次Back键才能退出程序。

0 0
原创粉丝点击