android学习1:初识Activity

google官方的activity生命周期图

android学习1:初识Activity

Activity的生命周期为onCreate->onStart->onResume->onPause->onStop->onDestory。


应用启动:onCreate->onStart->onResume

当Activity经过onResume之后就进入“运行态”,这个时候如果有一个新的Activity进入,则Activity将执行onPause进入“暂停态”,如果新进入的Activity没有完全覆盖原来的Activity,也就是原来的Activity还有一些部分是可见的,那么Activity将暂时停留在“暂停态”,当新进入的Activity退出后,原来的Activity回到onResume,然后重新进入“运行态”;如果新进入的Activity将原来的Activity完全覆盖,那么原来的Activity在执行完onPause之后会进一步执行onStop,进入“停止态”,此时如果新进入的Activity退出,则原Activity执行onRestart->onStart->onResume重新进入“运行态”

当Activity处于“暂停态”或者“停止态”的时候,如果其他的应用程序需要内存,而整体内存不够用的时候,这个Activity就会被回收。

按下返回键:onPause->onStop->onDestory

"Run""暂停态",返回的时候会退出该应用,依次会进入"停止态"->退出应用(也就是销毁)

长按Home键:onPause->onStop

长按home键的时候是加入一个新的activity,这时从"Run""暂停态",长按后的activity完全覆盖了当前的activity,所以进入"停止态"

返回界面:onRestart->onStart->onResume

因为activity已经创建过了,并且没有销毁,所以这里返回(这里是指长按home键之后点击应用返回)首先走了"onrestart",然后进入"onstart",再到"运行态"

不同的Activity可以运行在不同的进程中

  • 在Android系统中,每一个应用程序都是由一些Activity和Service组成。

  • Service运行在独立的进程中,而Activity有可能运行在同一个进程中,也有可能运行在不同的进程中,一般情况下,一个应用程序的所有Activity都运行在同一个进程中。

  • 如果想让某个Activity运行在独立的进程中,则需要在Androidmanifest.xml中对Activity的属性Android:process =”value“ 进行配置,value的值就是此Activity所在的进程的进程名。如果进程名以“:”开头,则为私有进程;如果进程名以小写字母开头,则为全局进程。

  • 进程之间的通信主要靠binder机制。

  • 让某些Activity运行在单独的进程中的好处是可以降低整个应用中不同组件之间的耦合度。