1、主Activity继承至TabActivity

public class MainActivity extends TabActivity {

private TabHost tabHost;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

tabHost = getTabHost();

addTab("act1", "界面1", MyActivity1.class);

addTab("act2", "界面2", MyActivity2.class);

addTab("act3", "界面3", MyActivity3.class);

setContentView(tabHost);

}

/**

* 添加Activity标签

* @param tag标识

* @param title标签标题

* @param clazz 激活的界面

*/

private void addTab(String tag, String title, Class clazz) {

TabSpec tabSpec = tabHost.newTabSpec(tag);

tabSpec.setIndicator(title);

Intent intent = new Intent(getApplicationContext(),clazz);

tabSpec.setContent(intent);

tabHost.addTab(tabSpec);

}

@Override

protected void onStop() {

super.onStop();

}

}

待切换的界面1:

public class MyActivity1 extends Activity {

private static final String TAG = "MyActivity1";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Log.i(TAG,"MyActivity1 创建了...");

TextView tv = new TextView(this);

tv.setText("我是界面1");

tv.setGravity(Gravity.CENTER);

tv.setTextSize(100);

setContentView(tv);

}

@Override

protected void onStop() {

Log.i(TAG,"MyActivity1 onStop");

super.onStop();

}

@Override

protected void onPause() {

Log.i(TAG,"MyActivity1 onPause");

super.onPause();

}

@Override

protected void onResume() {

Log.i(TAG,"MyActivity1 onResume");

super.onResume();

}

@Override

protected void onDestroy() {

Log.i(TAG,"MyActivity1 onDestroy");

super.onDestroy();

}

}

待切换的界面2:

public class MyActivity2 extends Activity {

private static final String TAG = "MyActivity2";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Log.i(TAG,"MyActivity2 创建了...");

TextView tv = new TextView(this);

tv.setText("我是界面2");

tv.setGravity(Gravity.CENTER);

tv.setTextSize(100);

setContentView(tv);

}

@Override

protected void onStop() {

Log.i(TAG,"MyActivity2 onStop");

super.onStop();

}

@Override

protected void onPause() {

Log.i(TAG,"MyActivity2 onPause");

super.onPause();

}

@Override

protected void onResume() {

Log.i(TAG,"MyActivity2 onResume");

super.onResume();

}

}

待切换的界面3:

public class MyActivity3 extends Activity {

private static final String TAG = "MyActivity3";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Log.i(TAG,"MyActivity3 创建了...");

TextView tv = new TextView(this);

tv.setText("我是界面3");

tv.setGravity(Gravity.CENTER);

tv.setTextSize(100);

setContentView(tv);

}

@Override

protected void onStop() {

Log.i(TAG,"MyActivity3 onStop");

super.onStop();

}

@Override

protected void onPause() {

Log.i(TAG,"MyActivity3 onPause");

super.onPause();

}

@Override

protected void onResume() {

Log.i(TAG,"MyActivity3 onResume");

super.onResume();

}

}

经测试,在切换的过程中,作为content的三个activity的生命周期方法,onStop()、onDestory()不会执行!

经查:getLocalActivityManager.dispath...可以分发各方法。从而激活对应activity的生命周期方法。(未测)

相关文章