activity(二)

来源:互联网 发布:2017最新网络情歌 编辑:程序博客网 时间:2024/06/08 07:01

activity(二)

1,bundle的使用:activity之间交换数据;

Intent提供了多个重载的方法来“携带”额外的数据:

putExtras(Bundle data):向Intent中放入需要携带的数据包。

Bundle getExtras():取出Intent所携带的数据包。

putExtra(String name,xxx value):向Intent中按key-value对的形式存入数据。

getxxxExtra(string name):从Intent中按key取出指定类型的数据。

Bundle就是一个简单的数据包,bundle对象包含了多个方法来存入数据:

putxxx(Stirng key,xxx data):向bundle放入int,long等各种类型的数据。

putSerializable(String key,Serializable data):向bundle中放入一个可序列化的对象(class)。

Intent的putExtras(String name,xxx value)方法是“智能”,当程序调用intent的这个方法的时候,intent会向它携带的bundle来存入数据,如没有bundle则先自动的创建一个bundle对象,然后在存入数据。(bundle类似于map)。而intent负责activity之间的通信。

启动其他Activity并返回结果:

startActivityForResult(Intent intent,int requestCode)方法来启动activity。,该方法期望获取指定的Activity返回的结果。(1)当前的activity重写onActivityResult(int requestCode,int rewultCode,Intent intent),当被启动的Activity返回结果时,该方法被触发,其中requestCode代表请求码,而resultCode代表Activity返回的结果码,这个结果码也是有开发者根据业务需要自己定的。

(2)被启动的activity需要调用setResult()方法设置处理结果。

Activity的四种加载模式:

1,standard模式,标准模式:Android总会给新的activity创建一个新的实例。activity默认的加载模式。

2,singleTop模式;这种模式与standard模式基本相似,不同的是:当被启动的目标activity已经位于Task栈顶的时,系统不会创新创建activity实例,而是复用栈顶的activity实例。

3,singleTask模式:这种加载模式的activity在task内只有一个实例。

4,singleInstance模式:系统保证无论哪个Task中启动目标Activity,只会创建一个目标activity实例,并会使用一个全新的Task栈来装载该Activity实例。

0 0