在正常的应用程序使用时,前台活动有时通过使所述活动暂停等可视部件阻塞。例如,当一个半透明活性打开(诸如一个在一个对话的方式),在以前的活动暂停。只要活动仍部分可见,但当前未处于焦点中的活动,它保持暂停。
然而,一旦活性完全阻塞和不可见的,它停止(这将在下一课讨论)。
然而,一旦活性完全阻塞和不可见的,它停止(这将在下一课讨论)。
当你的活动进入暂停状态时,系统调用的onPause()方法的活动,它允许你停止不应该继续暂停时(如视频)正在进行的动作或持续存在,应永久保存,以防任何信息用户继续留下您的应用程序。如果用户返回到从暂停状态的活动,系统恢复,并调用onResume()方法。
注意:当你的活动接听电话时,onPause()它可能是一个迹象,该活动将被暂停了一会儿,用户可以将焦点返回到你的活动。然而,这通常是第一个迹象表明,用户正在离开你的活动。
图1.当用户离开你的活动时,系统调用的onStop()停止活动(1)。如果在活动停止用户返回,系统调用onRestart()(2),紧接着ONSTART()(3)和onResume()(4)。请注意,无论什么情况下会导致活动停止,系统()之前调用的onStop总是调用的onPause()。
停止你的活动
当你的活动收到一个调用的onStop()方法,它不再是可见的,应该释放那些在用户不使用它并不需要的几乎所有资源。一旦你的活动停止后,系统可能会破坏。例如,如果需要恢复系统内存。在极端情况下,该系统可能只是杀了你的应用程序,而无需调用该活动的最后的onDestroy()回调,让你用的onStop()释放可能泄漏内存资源,这一点很重要。
虽然在onPause()方法在onStop()调用之前,你应该使用的onStop()来执行更大,更多的CPU关机操作,如将信息写入数据库。
例如,这里的的onStop()的实现,节省了一张字条给永久存储草案的内容:
@Override protected void onStop()