1. 程式人生 > >Activity四種啟動模式的特點

Activity四種啟動模式的特點

一.Activity四種啟動模式的特點

1.standard模式

 Activity預設的啟動模式,依次入棧出棧,滿足"先進後出"的原則。這種模式下,可以有多個相同的例項,也允許多個相同Activity疊加

2.singleTop模式

 當啟動的Activity已經位於棧頂,則直接使用它不建立新的例項。如果沒有則建立新的例項。

 3.singleTask模式

 如果希望Activity在整個應用程式中只存在一個例項,可以使用該模式。每次啟動該Activity時,系統首先會檢查棧中是否存在該

 Activity的,如果發現已經存在則直接使用,並將當前Activity之上的所有Activity出棧。

 4.singleInstance模式

 該模式載入Activity時,無論從哪個任務棧中啟動該Activity,只會建立一個Activity例項,並且會使用一個全新的任務棧來裝載該Activity例項。

二.Activity三種介面切換。

1.建立如圖所示資原始檔。


2.在MainActivity中

package com.example.administrator.myapplication;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import 
android.util.Log; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click1(View view) { Intent intent = new
Intent(this, MainActivity.class); startActivity(intent); Log.i("Tag", "頁面一 taskId:" + getTaskId()); } public void click2(View view) { Intent intent = new Intent(this, Main2Activity.class); startActivity(intent); Log.i("Tag", "頁面二 taskId:" + getTaskId()); } public void click3(View view) { Intent intent = new Intent(this, Main3Activity.class); startActivity(intent); Log.i("Tag", "頁面三 taskId:" + getTaskId()); } }

3.在activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.administrator.myapplication.MainActivity"
android:onClick="click1">

    <Button
android:text="第一個頁面"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click1"
/>
    <Button
android:text="第二個頁面"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click2"
/>
    <Button
android:text="第三個頁面"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click3"
/>
    <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="50sp"
android:text="第一個頁面" />

</LinearLayout>
4.在AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.administrator.myapplication">

    <application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

    </application>

</manifest>
5.完成