Android基础(八) Activity的启动模式 内存管理

一、Activity的启动模式

    在清单文件AndroidManifest.xml中的<activity>标签中可以配置android:launchMode属性,用来控制Actvity的启动模式。

    在Android系统中,我们创建的Activity是以栈的形式呈现的:

        standard:每次调用startActivity(Intent intent)方法时,都会创建一个新的Activity放在栈顶。

        singleTop:在启动Activity时,如果指定的Activity不在栈顶就创建Activity;如果栈顶已经存在要创建的Activity,则不再创建。

        singleTask:如果要启动的Activity不存在则创建新的Activity,如果已存在要创建的Activity则直接跳转到指定的Activity,并将栈顶的Activity全部结束。

        singleInstance:如果要启动的Activity不存在则创建新的Activity,如果已经存在要创建的Activity,则将指定的Activity移动到栈顶。

 

a.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >



    <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="A_Activity"

        android:textSize="30sp" />



    <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:onClick="openA"

        android:text="打开A" />



    <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:onClick="openB"

        android:text="打开B" />



</LinearLayout>
public class A_Activity extends Activity {

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.a);

    }

    

    public void openA(View view) {

    	startActivity(new Intent(this, A_Activity.class));

    }

    

    public void openB(View view) {

    	startActivity(new Intent(this, B_Activity.class));

    }

}

b.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >



    <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="B_Activity"

        android:textSize="30sp" />



    <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:onClick="openA"

        android:text="打开A" />



    <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:onClick="openB"

        android:text="打开B" />



</LinearLayout>
public class B_Activity extends Activity {

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.b);

    }

    

    public void openA(View view) {

    	startActivity(new Intent(this, A_Activity.class));

    }

    

    public void openB(View view) {

    	startActivity(new Intent(this, B_Activity.class));

    }

    

}

 

二、内存管理

    Android系统在运行多个程序时,如果系统的资源不足,就会强制结束一些进程。而系统会选择哪些进程结束有着不同的优先级。以下情况被结束的优先级由高到低:

    空:进程中所有的Activity都已经被销毁

    后台:进程中还有一个处于停止状态的Activity

    可见:进程中还有一个处于暂停状态的Activity

    前台:进程中正在运行一个Activity

你可能感兴趣的:(Activity)