关闭

Activity四种启动模式

648人阅读 评论(0) 收藏 举报
分类:

Activity 的启动模式有四种,standard、singleTop、singleTask、singleInstance.


1.standard

准备工作:两个Aty   相同布局 Manifests修改启动方式

Manifests:
<activity
            android:name=".MainActivity"
            android:launchMode="standard">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <activity
            android:name=".SecondActivity"
            android:launchMode="standard">
        </activity>

布局:
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.administrator.hongyangzi.MainActivity">

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="#91bef0"
        android:gravity="center"
        android:text="NextAty"
        android:textAllCaps="false"
        android:textSize="40sp"/>


</RelativeLayout>

MainActivity:
public class MainActivity extends AppCompatActivity {

    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LogUtil.fussenLog().d(this.toString());

        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(MainActivity.this , SecondActivity.class);
                startActivity(intent);

            }
        });

    }
}

SecondActivity:
public class SecondActivity extends AppCompatActivity {

    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LogUtil.fussenLog().d(this.toString());

        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(SecondActivity.this , MainActivity.class);
                startActivity(intent);

            }
        });


    }

}


最后运行一下,点击按钮不停的在MainActivity和SecondActivity之间切换,结果如下:


红线上面是MainActivity  蓝线是SecondActivity
可以看出虽然跳转的页面相同但是每次都会创建出一个新的Activity



2.singleTop

准备  做点小修改  在布局里面新增一个Button

Button作用是跳转自身
然后在每个点击事件里把作用打Log

最后运行效果如下:


这个是在Main和Second之间跳转  和standard一样没有变化

但是,点击跳转到自身的按钮:


位于栈顶跳转自身时没有新建一个新的Activity


3.singleTask



4.singleInstance

运行效果如下:






------------------------------------------------------------------------------------------------------------------------------------------------

最后总结:















1
0
查看评论

Activity的四种启动模式及使用场景

standard、singleTop、singleTask、singleInstance 默认Activity为standard标准模式,多次启动同一个Activity时,系统会创建多个实例,在这种模式下,谁启动了该模式的Activity,该Activity就属于启动它的Activity的任务栈中 ...
  • Liu_yunzhao
  • Liu_yunzhao
  • 2017-10-16 22:47
  • 793

Activity四种启动模式说明

1,standard标准模式: 每次启动一个Activity都会重新创建一个实例,即调用Activity创建时的生命周期方法onCreate,onStart,onResume;被启动的Activity会自动添加到启动它的Activity的任务栈中,因此用ApplicationContext启动sta...
  • u011959433
  • u011959433
  • 2016-03-21 15:54
  • 2129

[Android开发]Activity的四种启动模式及其应用场景

启动模式(launchMode)在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理...
  • CodeEmperor
  • CodeEmperor
  • 2016-01-08 11:39
  • 15281

彻底弄懂Activity四大启动模式

最近有几位朋友给我留言,让我谈一下对Activity启动模式的理解。我觉得对某个知识点的理解必须要动手操作才能印象深刻,所以今天写一篇博文,结合案例理解Activity启动模式。由于之前看过“区长”的一篇博文(文章结尾处有链接)深受启发,因此本文是在那篇文章的基础上更加全面的讲解。   ...
  • mynameishuangshuai
  • mynameishuangshuai
  • 2016-05-24 16:04
  • 58885

Activity四种启动模式的利用场景

一.singleTask: 场景1: 需求说明:如果自己的客户端处于运行状态,按下Home键后台挂起。此时如果使用微信调起自己的客户端某 个页面,不做任何处理的情况下,按下回退或者当前Activity.finish(),页面都会停留在自己的客户端(因为自己的Application回&#...
  • berber78
  • berber78
  • 2014-02-21 16:42
  • 10461

浅谈Activity的四种启动模式

本文主要聊聊Activity的四种启动模式,请看文章!
  • itluochen
  • itluochen
  • 2016-09-20 19:31
  • 1523

Activity四种启动模式详解

最近在学习《Android开发艺术探索》,所以对所学习到的知识做个总结,就算是做笔记吧。 Activity的启动模式目前有四种,分别是standard、singleTop、singleTask和singleInstance。怎么给Activity的启动模式呢? 一般我们通过AndroidMeni...
  • Mr_wzc
  • Mr_wzc
  • 2016-06-23 20:16
  • 2672

Android学习之Activity的四种启动模式与特点

Acitivty的四种启动模式与特点activity有四种启动模式,分别为: standard singleTop singleTask singleInstance 可以和activity的flags(通过Intent对象调用FLAG_ACTIVITY_* ,*代表常量)结合使用。默认的启动模式...
  • u011726984
  • u011726984
  • 2015-10-27 23:36
  • 2803

activity的四种启动模式区别_launchmode图文详解

Activity的launchMode详细分析 应用中的每一个Activity都是进行不同的事物处理。以邮件客户端为例,InboxActivity目的就是为了展示收件箱,这个Activity不建议创建成多个实例。而ComposeMailActivity则是用来撰写邮件,可以实例化多个此Ac...
  • androidstar_cn
  • androidstar_cn
  • 2016-10-03 23:55
  • 836

Activity的四种启动模式-图文并茂eclipse设置详解

在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。 这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。 加载模式分类及在哪里配置 A...
  • Guofengpu
  • Guofengpu
  • 2016-07-28 19:57
  • 496
    个人资料
    • 访问:28880次
    • 积分:1250
    • 等级:
    • 排名:千里之外
    • 原创:83篇
    • 转载:1篇
    • 译文:0篇
    • 评论:20条
    最新评论