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

运行效果如下:






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

最后总结:















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值