Android SDK 开发之应用程序基础
2010-03-23 04:53:00 来源:WEB开发网核心提示:stack的顶端,处理用户输入,Android SDK 开发之应用程序基础(15),下一个状态永远为onPause()否onPause()onPause()当系统将要恢复另一个activity时调用,该方法一般用来保存一些数据,你可以实现一个onSaveInstanceState()方法,Android在销毁一个 ac
stack的顶端,处理用户输入。下一个状态永远为onPause()
否
onPause()
onPause()
当系统将要恢复另一个activity时调用。该方法一般用来保存一些数据,停止消耗cpu的操作例如动画等。它应该迅速完成工作,因为下一个
activity要等到它返回才能恢复。如果该activity进入前台则继续调用onResume(),如果变为不可见则继续调用onStop().
是
onResume()或onStop()
onStop()
当activity对用户不再可见时调用。当activity被销毁或者另一个activity启动并覆盖于之上时调用。如果该activity回来和用户交互则调用onRestart(),如果该activity将被销毁则调用onDestroy()。
是
onRestart()或onDestroy()
onDestroy()
在activity被销毁之前被调用。这是activity最后一个接收的调用。它可以在activity正在结束时被调用(程序中调用了finish()),或者因为系统为节约空间而kill它。可以用isFinishing()方法来区分二者。
是
无
注意该表格的"是否能被kill"项。它表示系统是否能够在该方法返回后的任意时间Kill掉进程,而不执行该activity的其它代码。有三个方法 onPause(),onStop()和onDestroy()该项为"是"。由于onPause()是3个中的第一个,因此它是唯一一个在进程被 kill之前一定会被调用的—onStop()和onDestroy()可能不被调用。因此,你应该使用onPause()来保存任何永久性数据。
该项为"否"的方法在它们被调用时保护该activity进程不被Kill。因此一个activity的可Kill状态为从onPause()返回一直到onResume()被调用之前。直到下一次onPause()返回之前它都不能被kill。
在后面的进程和生命周期一节中会讲到,一个不处于可kill状态的activity仍然可以被系统kill掉——但只会发生在资源耗尽的极端的情况下。
Saving activity state
当系统,而不是用户关闭一个activity来节约内存时,用户可能希望当他们返回该activity时回到原来的状态。
为了保存activity被kill之前的状态,你可以实现一个onSaveInstanceState()方法。Android在销毁一个 activity之前会调用这个函数——也就是说,在onPause()被调用之前。它传递一个Bundle对象给
更多精彩
赞助商链接