• Activity启动模式


    standard模式:默认启动方式,不进行设置的话所有活动会自动使用这种模式。Android使用Task栈来管理活动的,在本模式下,每当启动一个新的活动,它就会在Task栈中入栈,并处于栈顶位置。对于该模式下,系统不会在乎是否这个活动已经在栈中,每次启动都会创建该活动的一个新的实例。

    package com.pingyijinren.helloworld.activity;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import com.pingyijinren.helloworld.R;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
        private Button button;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            button = (Button) findViewById(R.id.button);
            button.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            startActivity(new Intent(this, MainActivity.class));
        }
    }

    每点击一次按钮就产生一个新的活动,此时返回栈中有四个MainActivity,连续按四次返回键才能退出程序。

    SingleTop模式:当活动处于栈顶且已经存在时即不再入栈(不再创建活动),当不处于栈顶时,则继续入栈。

    SingleTask模式:使用本模式可以很好的解决重复创建栈顶活动的问题,当活动的启动模式指定为singleTask,每次启动该活动时系统首先会在Task栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把这个活动之上的活动统统出栈,如果没有发现则创建一个实例。

    SingleInstance模式:指定为singleInstance模式的活动会启用一个新的返回栈来管理这个活动(其实,如果singleTask模式制定了不同的taskAffinity,也会启动一个新的返回栈)。

  • 相关阅读:
    vim实用技巧
    《C程序设计语言》学习笔记
    《鸟哥的Linux私房菜:服务器搭建篇》第一部分学习笔记
    入职培训学习心得
    [NOI2013]树的计数
    bzoj1779 [Usaco2010 Hol]Cowwar 奶牛战争(网络流)
    P2944 [USACO09MAR]地震损失2Earthquake Damage 2(网络流)
    bzoj3218 a + b Problem(网络流+主席树)
    P4542 [ZJOI2011]营救皮卡丘(Floyd+网络流)
    P4843 清理雪道(上下界网络流)
  • 原文地址:https://www.cnblogs.com/zqxLonely/p/5553708.html
Copyright © 2020-2023  润新知