1、建立,配置和使用Activity
1)建立activity
- activity对于android的作用类似与Servlet对web。建立自己的activity需要继承activity基类。也可以继承activity的子类。
- activity何时被实例化,方法何时被调用都是android决定的。
- 与servlet类似,为了响应用户请求,要实现Activity的方法。
2)配置activity
在元素下添加
3)启动,关闭activity
android通常包含多个activity,但只有一个activity为入口,运行时会自动启动执行activity,一般由入口activity启动其他activity。
- startActivity(Intent intent):启动其他activity
- startActivityForResult(Intent intent,int requestCode):指定请求码,启动activity,程序会等到新启动activity的结果(通过重写onActivityResult方法获取)
- finish():结束当前Activity
- finish(int requestCode):结束以startActivityForResult(Intent intent,int requestCode)方法启动的Activity
4)使用Bundle在Activity之间交换数据
一个Activity启动另一个时,会有数据过去,就像Servlet到另一个时,会将数据放稻草requestScope等中。
Activity中只需要将数据放入Intent中。
Intent提供的多个重载方法传递数据:
- putExxtras(Bundle data):向Intent中放入数据
- putXXX(String key,xx data):向Bundle放入int ,long等数据
- putSerializable(String key,Serializable data):向Bundle中放入一个可序列化的对象
- getXXX(String key):从Bundle取出int,long等各种类型的数据
- getSerializable(String key,Serializable data):从Bundle取出一个可序列化的对象
5)启动其他Activity并返回结果
startActivityForResult(Intent intent,int requestCode)启动其他acctivity,而且获取指定activity返回的结果。
onActivityResult(int requestCode, int resultCode, Intent intent),其他的requestCode关联调用启动Activity的方法,resultCode关联返回结果的Activity。
2、Activity的回调机制
与servlet类似,activity被开发出来后,只要在AndroidManifest.xml文件配置Activity。
当把这个Servlet部署在Web应用中之后,Web服务器将会在特定的时刻,调用该Servlet上面的各种方法——这种调用就被称为所谓的回调。
3、Activity的生命周期
activity在Android应用中运行的活动状态,以Activity栈的形式管理。当前活动的在栈顶。
1)Activity的生命周期演示
四种状态:
- 活动状态:当前Activity位于前台,用户可见,可以获得焦点
- 暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点
- 停止状态:该Activity不可见,失去焦点
- 销毁状态:该Activity结束,或Activity所在的Dalvik进程被结束
生命周期中回调的方法:
- onCreate(Bundle savedSatus):创建Activity时被回调
- onStart():启动Activity时被回调
- onRestart():重新启动Activity时被回调
- onResume():恢复Activity时被回调
- onPause:暂停Activity时被回调
- onStop:停止Activity时被回调
- onDestroy:销毁Activity时被回调
2)Activity与Servlet的相似性与区别
相似:
- 都是向用户呈现界面
- 开发都要两者都要继承系统的基类
- 开发出来都要配置
- activity运行再Android中,Servlet运行在Web应用中
- 方法都是系统回调
- 都有各自的生命周期
- 都不会直接相互调用,不能直接进行数据交换
区别:
- activity是Android窗口容器,最终以窗口形式显示,Servlet不会生成应用界面,只是向浏览器生成文本响应
- Activity的本质是通过各种组件搭建页面,servlet向浏览器生成文本,由浏览器生成
- Activity跳转由Intent控制,Servlet跳转由用户请求控制