Activity四种启动模式

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

运行效果如下:






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

最后总结:















阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36838630/article/details/76872626
个人分类: Android基础
想对作者说点什么? 我来说一句

LaunchMode

2017年06月22日 1.09MB 下载

activity四种启动模式

2016年08月31日 44KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭