Android之旅三 Activity详解
1、 在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成,多个Activity组成了Activity栈,当前活动的Activity处于栈顶,Activity有自己的生命周期,由Android系统控制。
2、 在Activity上面是一个Window对象,Window上面通常是一个布局容器兑现Layout,再上面是我们要展示的组件,如按钮、文本框等。
3、 Activity的方法的回调思想
从上面的代码我们可以看出:接口(系统框架)是系统提供的,接口的实现是用户实现的。达到接口统一,实现不同的效果,系统通过在不同状态下”回调”我们的实现类,达到接口和实现的分离。
4、 Activity的创建:
5、 启动另一个Activity:一个Activity启动另一个Activity,我们可以使用startActivity()或者startActivityForResults()方法(能返回结果),这两个方法中的一个最重要的参数是一个很重要的组件Intent,Intent是相同或者不同组件的信使。
6、 Activity之间的数据传递:在java web中我们把数据放在scope中,例如使用session、request等,在android中我们使用Bundle对象,我们将要传递的信息封装到这个对象里面,通过Intent对象传递到另一个Activity中。
我们将信息放入Bundle中,并通过Intent组件传递给另一个Activity:
在另一个Activity中获得数据:
7、 启动另一个Activity并返回结果,例如在注册信息的时候用户填上一步和下一步,当用户点击上一步,信息的保存:
下一个Activity:
8、 Activity的声明周期:在Android系统中,Activity作为Activity栈被管理,当前活动的Activity处于栈顶,之前非活动的Activity被压入下面成为非活动的Activity,等待是否可能被恢复为活动状态。
Activity中四个重要的状态:
Activity的生命周期可分为一下三个过程:
整个完整的生命周期:从onCreate()方法开始到onDestory()方法结束
可见生命周期:从onStart开始到onStop结束
前台可见生命周期:从onResume()方法开始到onPause()方法结束
Activity各种状态及方法调用时机:
注意:如果一个activity完全被另一个activity所掩盖那他会处于stop状态。但仍然保存着原来的状态和信息。然而,如果别的地方需要更多的内存而且这个activity仍一直处于隐藏状态,那么系统有可能会杀死他的进程。
如果一个activity是暂停或者停止状态,系统可以清理他们占用的内存,或者调用finish()方法,或者直接结束他的进程。当他再次显示给用户时,会完全的重新运行并且加载以前所存储的信息。