Activity基础知识
一、activity之间的跳转
1.界面放置一个button
2.在java文件中获取button> findViewById()
3.为button绑定事件监听器 setOnclickListener
4.创建启动activity的intent >Intent intent = new Intent()
5.启动activity >startActivity
二、activity之间数据交换步骤
1.第一个activity中创建一个button,绑定点击事件
2.创建person对象,在MainActivity中实例化
3.创建Bundle对象,使用putSerializable向Bundle对象中放入person对象
4.创建一个Intent 使用intent.putExtras方法传输数据
5.startActivity()启动
6.点击按钮,程序将启动ResultActivity,并将输入的内容传入到改activity
7.ResultActivity将接收到的数据进行显示
8。创建启动该Result的Intent:Intent intent = getIntent()
9.直接通过Intent取出所携带的Bundle数据包中的数据
三、启动其他Activity并返回结果
1.startActivityForResult(Intent intent,int requestCode)启动指定的Activity,而且期望获取Activity返回的结果
2.获取被启动Activity所返回的结果:1.需要重写onActivityResult(int resquesCode,int resultCode,Intent intent)(resquesCode:请求码 resultCode:结果码);2.调用setResult()方法设置处理结果
四、activity的4种加载模式
1.配置activity时指定android:launchMode属性用来配置该activity的加载模式
activity的加载模式就是负责管理实例化,加载activity的方式,并可以控制activity于task之间的加载关系
2.standard模式:单击按钮,程序将会不断重新启动,但他们的Task ID总是相同,这种加载模式不会使用全新的Task
2.singleTop模式:与standard模式基本相同,唯一不同的是当启动的activity已经位于Task栈顶,系统不会重新创建目标activity的实例,而是直接服用已经有的activity实例
3.singleTask模式:采用这种模式加载的activity在同一个Task内只有一个实例,3种情况:启动的目标activity不存在,创建目标activity的实例,并添加到栈顶;启动目标Activity已经位于栈顶,此时与singleTop模式一样;启动目标activity已经存在,但是没位于栈顶,系统将位于该activity上面所有activity移除Task栈,从而使目标activity转入栈顶
4.singleInstance模式:系统保证无论从那个Task中启动目标Activity,只会创建一个目标activity实例,并会使用全新的Task栈来装载该activity实例;2中情况:启动目标activity不存在,系统先创建一个全新的Task,在创建目标activity实例,加入到新的Task栈顶;启动目标activity已经存在,无论在那个程序中,无论位于那个task中,系统会把该activity所在的task转到前台,从而显示出来