Android活动Acitivity启动模式之standard

来源:互联网 发布:淘宝店店铺介绍范文 编辑:程序博客网 时间:2024/05/22 15:38

Android的活动是通过任务Task来进行管理的,一个任务就是一组放在栈里的活动的集合,即所谓的返回栈(Back Stack)。栈具有先进后出、后进先出的特性。当启动一个活动时,活动会在返回栈中入栈,处于栈顶位置,当按下返回键或者调用finish方法会销毁一个活动,此时栈顶活动会出栈,届时又会有新的活动处于栈顶位置。

在Android中,活动的启动模式有四种,根据不同的需求可以为活动设置不同的启动模式。在这里介绍standard模式。

standard模式是活动启动的默认模式,当为活动设置了此模式,每次启动都会创建一个新的实例,而不在乎该活动是否已经在返回栈中存在。

(1)新建Android项目TestLaunchMode

创建完成后,修改activity_main.xml如下

[html] view plaincopyprint?
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:layout_width="fill_parent"  
  3.     android:layout_height="fill_parent"  
  4.     android:orientation="vertical" >  
  5.   
  6.     <Button  
  7.         android:id="@+id/button1"  
  8.         android:layout_width="match_parent"  
  9.         android:layout_height="wrap_content"  
  10.         android:text="MainActivity Button" />  
  11.   
  12. </LinearLayout>  
(2)修改onCreate方法

[java] view plaincopyprint?
  1. @Override  
  2.     protected void onCreate(Bundle savedInstanceState) {  
  3.         super.onCreate(savedInstanceState);  
  4.           
  5.         //打印当前对象  
  6.         Log.d("MainActivity"this.toString());  
  7.         //去掉title  
  8.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
  9.         setContentView(R.layout.activity_main);  
  10.         //获取button1  
  11.         Button button1 = (Button) findViewById(R.id.button1);  
  12.         //添加点击事件  
  13.         button1.setOnClickListener(new OnClickListener() {  
  14.               
  15.             @Override  
  16.             public void onClick(View view) {  
  17.                 //为了测试standard启动模式,当点击按钮时,启动MainActivity活动  
  18.                 Intent intent = new Intent(MainActivity.this,MainActivity.class);  
  19.                 //启动活动  
  20.                 startActivity(intent);  
  21.             }  
  22.         });  
  23.     }  
在该方法中,打印了当前活动对象,同时为按钮添加点击事件:启动本身活动。

(3)查看日志

发布android项目,为了查看效果,连续点击按钮3次,看到如下内容:             

从图中可以看出,总共打印了4次(活动启动+3次点击按钮),每次的活动实例都不用,从而验证了活动启动模式standard。

        此时栈中有4个MainActivity实例,连续按Back键4次才能退出应用程序。

0 0
原创粉丝点击