您的位置:首页 > 其它

管理Activity的生命周期(2)Pausing和Resuming

2014-12-29 14:15 218 查看
当半透明的Activity覆盖之前的Activity的时候,之前的Activity就处于onPauseed的状态了,当用户回到了之前的Activity的时候,之前的Activity回到的是onResumed的状态了。

onPause()(ActivityA)->onCreate(ActivityB)->onStart(ActivityB)->onResume()(ActivityB)->onPause(ActivityB)->onResume()(ActivityA)->onStop()->onDestroy()



当Activity处于Paused的状态,再次回来,直接处于的是Resumed的状态。

暂停Activity

当系统调用onPause()的时候,意味着Activity还是部分可见的,但是大多情况下,用户是即将要离开这个Activity的并且它会进入Stopped状态。onPaused()接口回调用来:

(1)停止动画或者是其他将要进行的消耗CPU的动作。

(2)提交还未保存的数据操作。如果用户希望这种变化是永久地保存在他们离开的时候。

(3)释放系统资源,比如广播接收者,处理传感器(比如GPS),或者是当你的Activity暂停了和用户不需要的任何可能影响到电池寿命的资源。

比如,照相时在onPause中这样:

@Override
public void onPause() {
super.onPause();  // Always call the superclass method first

// Release the Camera because we don't need it when paused
// and other activities might need to use it.
if (mCamera != null) {
mCamera.release()
mCamera = null;
}
}
记住:密集型的CPU操作最好不要在onPause()方法中执行,这个会减慢可见的转换过程(数据库操作最好不要在这里写),如果想写,就写在onStop()中。

Resume Activity

还是照相的例子:

@Override
public void onResume() {
super.onResume();  // Always call the superclass method first

// Get the Camera instance as the activity achieves full user focus
if (mCamera == null) {
initializeCamera(); // Local method to handle camera init
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: