关闭

Activity四种启动模式

275人阅读 评论(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

运行效果如下:






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

最后总结:















0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10969次
    • 积分:429
    • 等级:
    • 排名:千里之外
    • 原创:30篇
    • 转载:0篇
    • 译文:0篇
    • 评论:13条
    最新评论