学习别人,加自己理解:
总结:
(1)standard:默认,每次startActivity()都会生成一个Activity实例。(一个栈,多个实例)
(2)singleTop:当此Activity在Task栈顶时,直接使用栈顶的此Activity的实例,不创建一个新的此Activity实例,否则,创建一个新的实例。(一个栈,多个实例)
(3)singleTask: 在栈中只生成一个实例,可以被重复使用。(一个栈,一个实例)
(4)singleInstance:此模式下的Activity会单独开辟一个Task栈,此栈只包含这一个Activity。 在栈中只生成一个实例。(两个栈,一个实例)
Activity有四种加载模式:
- standard
- singleTop
- singleTask
- singleInstance
(1)standard:默认模式,不需要配置launchMode,用一个application验证,如下:
package com.activitymode.test1; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.Button; import android.view.View; import android.view.View.OnClickListener; import android.util.Log; public class ActivityModeTest1Activity extends Activity { private Button btn1; private static String TAG="ActivityModeTest1Activity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn1 = (Button)findViewById(R.id.btn1); btn1.setOnClickListener(listener1); Log.v(TAG, "onCreate"); } OnClickListener listener1= new OnClickListener(){ public void onClick(View arg0) { // TODO Auto-generated method stub Intent t = new Intent(); t.setClass(ActivityModeTest1Activity.this, ActivityModeTest1Activity.class); startActivity(t); } }; @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.v(TAG, "######onDestroy"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.v(TAG, "#####onPause"); } @Override protected void onResume() { //