首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Android Training - 暂停跟恢复一个Activity

2012-08-30 
Android Training - 暂停和恢复一个Activity在正常的程序使用中,处于前台运行的activity有时会被另外一些

Android Training - 暂停和恢复一个Activity
在正常的程序使用中,处于前台运行的activity有时会被另外一些可见的组件遮挡,从而造成activity被暂停。比如,一个半透明的activity(类似一个对话框)被打开,先前那个activity就会被暂停。虽然这个activity还有部分可见,但是当前的焦点不在这个activity上,因此它保持在paused状态。
不过,一旦这个activity被全部遮挡,处于不可见的状态,那么它就是被停止了。(下个教程讨论)
如果你的activity要进入paused状态,系统会调用你的activity种的onPause()方法,这个方法让你能够暂停那些不应该继续运行的行为(比如暂停视频播放),或者保存那些应该永久保存的用户数据。一旦用户从paused状态返回,系统能够调用onResume()方法恢复以前的运行。
提示:当activity接收调用onPause()时,这可能表明activity要暂时进入paused状态,用户可能马上就重新获得activity的焦点。但是,它也是用户离开这个activity时会调用的第一个方法。Android Training - 暂停跟恢复一个Activity
Android Training - 暂停跟恢复一个Activity图解:当一个半透明的activity覆盖你的activity时,系统调用onPause(),activity就会在Paused状态中等待(1)。系统调用onResume()方法返回activity。
暂停你的activity当系统调用onPause()方法的时候,技术上说明activity还是能部分可见的,但是大部分情况表明用户要离开activity,它将进入Stopped状态。你通常使用onPause()函数做下面的事:停止消耗cpu的动画或者运行中的动作。提交未保存的更改,但是只是保存用户离开后期望永久保存的东西(比如邮件草稿)。释放系统资源,比如广播接收器,传感器(比如GPS),或者消耗电量的资源,这些资源是activity暂停后用户不再需要的。例如,如果你的程序需要使用摄像头,onPause()方法中是释放它的好地方。

    @Override    public void onResume() {        super.onResume();  // 调用父类方法        // 当activity取得用户焦点时取得摄像头实例        if (mCamera == null) {            initializeCamera(); // 摄像头初始化的本地方法        }    }


热点排行