您的位置:首页 > 移动开发 > Android开发

android Tabhost中,控制activity的生命周期

2012-09-26 10:05 197 查看
最近做一个项目中使用了tabhost,但是在控制activity的时候那几个方法总是无法执行,百思不得其解,最后再网上找到了解决方案,如下:

我们都知道Activity的生命周期函数有

void onCreate(Bundle savedInstanceState)

void onStart()

void onRestart()

void onResume()

void onPause()

void onStop()

void onDestroy()

但是在TabHost中当设置activity作为Tab的content时,在activity中重载的onResume(),onPause(),onStop()是没有效用的

即如果在这些函数中有自定义方法是无法执行的。

在TabHost所在的activity中添加如下代码用于管理子activity的生命周期

代码:

@Override

        protected void onResume() {

        super.onResume();

        mlocalActivityManager.dispatchResume();

        }

        @Override

        protected void onPause() {

        super.onPause();

        mlocalActivityManager.dispatchPause(isFinishing());
 

而如果想在切换tab时执行子activity的onResume()中的自定义代码可以使用:

private OnTabChangeListener TabChangeListener = new OnTabChangeListener() {

               

                @Override

                public void onTabChanged(String tabId) {

                        if (tabId.equals("tab1")){

                                mlocalActivityManager.dispatchPause(isFinishing());

                                mlocalActivityManager.dispatchResume();

                                tabs.setCurrentTab(1);// tab1是添加的第二个tab

                        }

                }

        };
 

原文转自:
http://www.apkbus.com/android-51654-1-1.html 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: