今天接到一个电话面试,就问了一个问题,说:你详细说一下生命周期中onPause。
这肯定是学习Android的第一课,但是面试官问我这个问题明显是问我深度而不是广度,我只是简单地回答了一句,是可见但不可操作的,我觉得我GG了,赶快上来学习。
当系统调用activity的onPause()时,
虽然从技术角度来讲你的activity是可见的,但是更通常这也预示着用户会离开这个activity,然后你的activity会进入stop状态。
基于这种实际情况,通常你应该在onPause()方法里面做如下事情:
1.停止一切动画效果,或者其他消耗cpu的行为。
2.在离开之前提交未被保存改动,你应该只保存那些用户认为应该保存的数据,比如在邮箱应用中,用户正在向文本输入框中写入文字,那么这种改动 被保存下来才显得合理。
3.释放系统资源,比如广播接受者,传感处理器(gps等),或者其他影响电池消耗的东西,因为在pause状态下用户并不需要他们。
一般来说,你不要在onPause()中保存用户的改动(比如用户正在填写的私人信息的表格),只有当你确信用户希望自己修改的东西被保存的时候
比如刚刚提到的用户在写一封邮件的草稿。另外,在onPause中要避免发生cpu敏感的行为,比如写入数据库,这会影响切换到下一个activity的显示效果。
总之,在onPause中的操作都应该是非常简单的,低性能消耗的,确保在onStop()被调用时,用户向其他界面的切换是迅速流畅的。