• Android活动的启动模式


    1. standard

      标准模式,是活动默认的启动模式,在不进行显示指定的情况下,所有活动都会自动使用这种模式。

      Android使用返回栈管理活动,在standard模式下,每当启动一个新的活动,它就会在返回栈中入栈,并处在栈顶位置。

      例如:

     1 public class FirstActivity extends AppCompatActivity {
     2     @Override
     3     protected void onCreate(Bundle savedInstanceState) {
     4         super.onCreate(savedInstanceState);
     5         //提示信息
     6         Toast.makeText(this, "FirstActivity" + this, Toast.LENGTH_SHORT).show();
     7         setContentView(R.layout.activity_first);
     8         Button btn = findViewById(R.id.btn1);
     9         btn.setOnClickListener(new View.OnClickListener() {
    10             @Override
    11             public void onClick(View v) {
    12                 Intent intent = new Intent(FirstActivity.this, FirstActivity.class);
    13                 startActivity(intent);
    14             }
    15         });
    16     }
    17 }
    FirstActivity.java

      从输出信息可以看出,当点击new activity时,会新建一个活动,执行了onCreate方法。

    2. singleTop

      如果要启动一个活动,当栈顶已经存在了该活动,那么不会再次新建这个活动;反正,如果这个活动不在栈顶,仍然会新建这个活动。

      可能有些时候,绝对standard模式不太合理,活动已经在栈顶了,为什么还要启动新的活动?

      设置为singleTop模式:

    1 <activity android:name=".FirstActivity"
    2     android:launchMode="singleTop">
    3     <intent-filter>
    4         <action android:name="android.intent.action.MAIN" />
    5         <category android:name="android.intent.category.LAUNCHER" />
    6     </intent-filter>
    7 </activity>

    3.singleTask

      目的是让某个活动在整个应用程序的上下文中只存在一个实例。每次启动活动时,系统会首先检查返回栈中是否存在这个活动,只有不存在才会创建,如果找到,直接使用返回栈的活动。

    4.singleInstance

       启动一个新的返回栈来管理这个活动。

      实现多个程序共享活动,多个应用程序共享这个返回栈。

  • 相关阅读:
    pgrep 查询进程的工具
    shell脚本中>/dev/null的含义
    一条命令批量替换多个文件中字符串
    Centos 6.4上面用Shell脚本一键安装vsftpd
    centos 卸载vsftpd方法
    Centos 6.4上面用Shell脚本一键安装mysql 5.6.15
    SHELL学习笔记----IF条件判断,判断条件
    CentOS挂载新硬盘
    Linux fdisk 命令
    Linux df 命令
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/8744238.html
Copyright © 2020-2023  润新知