Android学习记录(一) 重拾Activity

  只想记录点什么,给自己留下一些足迹。
        学过安卓的人,对于Activity来说并不陌生,它是呈现在我们手机屏幕上面供用户进行操作的界面,它有七个生命周期。当我们创建一个Activity时,它会调用onCreate() 方法,此时的Activity是不可见,不可与用户交互的,接着继续调用onStart() 方法,这时的Activity可见,但还是不可交互,继续调用onResume 方法,Activity可见, 可与用户交互,经过这三个方法的调用,最终我们就可以在这个Activity上面进行操作了,一个Activity的创建也算完成。
        当我们按下返回键的时候,此时的Activity会调用onPause(部分可见,不可交互),onStop(不可见,不可交互),onDestroy(程序销毁,释放资源),此时的Activity退出栈,程序销毁。要是重新启动程序,就会重复上面的方法来创建一个Activity。当我们不是按下返回键的时候,而是直接按下home键回到桌面,那么此时的Activity会调onPause,onStop,而不会调用onDestroy来销毁程序。接着打开刚才运行的程序,会发现Activity会调用onRestart(重新启动),onStart,onResume重新呈现在我们的面前。
        onCreate() 方法:一般我们在这个方法里面对Activity需要的一些ui控件的进行设置,比如绑定列表的数据,创建一个View等。如果这个方法里面的参数不为空,说明接收到了Activity的状态(一般保存的是一些UI控件的状态),此时这个方法传递进来的参数存放了Activity当前的状态。我们可以进行相应的处理。
        onStart()方法:使得Activity对用户可见,当我们想要Activity对用户不可见时,调用onStop()方法。
        onResume()方法:使得activity可以与用户交互。此时的Activity处于栈顶。
        onPause()方法:使得Activity处于部分可见但是不能操作的状态,当我们正在听歌的时候,突然一个电话进来,那么此时的听音乐的Activity就必须调用此方法,在里面进行暂停音乐播放的操作,让用户更好的去接电话。当然这个方法里面也可以保存一些还没有来得及提交的数据。
        onDestroy()方法:销毁Activity,Activity调用的最后一个方法。销毁Activity有两种方法,一个是这个Activity自己调用了finish()方法,或者是系统因为内存不足,临时的关闭了Activity,我们可以用isfinish方法来做一个判断。
        这些对Activity的操作构成了Activity是生命周期,明白了这些方法的作用,我们在开发的时候就可以在相应的方法里面进行相应的操作了。

一些疑问:

        当我们通过当前的Activity启动另一个Activity的时候,为什么要先把当前的Activity暂停?

答:暂停当前的Activity是为了给用户一个更好的体验,举个例子:我们正在听歌的时候,突然一个电话进来,那么此时的听音乐的Activity就必须调用此方法,在里面进行暂停音乐播放的操作,让用户更好的去接电话。要是不暂停当前的Activity那么用户接电话的时候音乐还在放在是很糟糕的。
       当打开新的Activity的时候为什么不直接执行当前的Activity的onPause,onStop方法呢?

答:这是一个保护机制,当前的Activity你执行了onStop方法之后再来执行你要启动的Activity,要是你启动的Activity由于一些原因闪退,而你的当前的Activity又关闭了,那么用户看见的是黑屏,体验不好。 







原文地址:https://www.cnblogs.com/linewman/p/9918402.html