安卓基础6:页面跳转及数据传递
页面跳转及数据传递
四大组件:
界面:Activity
广播:broadCastReceiver
服务service
内容提供者:contentProvider
标签说明:
一个Activity就相当于一个界面;
只要创建四大组件之一,就需要在清单文件中配置一下;
application:
代表当前应用;
intent-filter:
意图过滤器:
这里写明了应用的主入口,和当前界面的种类为应用启动项;
页面的跳转
所谓的隐式意图,它的跳转通过action来进行跳转;而显示意图,则是通过包名、类名、界面名这些显示的信息进行跳转;
隐式意图:
通过制定一组动作或者数据 比如:电话拨号器案例;
Eg:
显示意图:
通过指定包名和界面名来开启activity
这里第一个参数是包名,第二个参数是界面的名字
附:
跳转文件的配置文件
简单写法:通过构造函数执行
总结:
1、显示意图更加安全,隐式意图不是很安全;
2、开启自己应用的界面用显示意图,在配置Activity时不需要配置意图过滤器
3、开启其他应用的界面用隐式意图; eg:电话播放器(把系统的应用打开)
人品计算器
代码:
界面
主界面
跳转界面:
事物处理层:
主界面:
跳转界面:
配置xml配置文件
数据传递:
通过意图传递数据的几种方式:
通过隐式意图中的setData方法传递
传递:
接收:
可以直接通过intent传递
可传递java八大数据及jason数据、集合
传递:
接收:
不同界面返回数据
步骤
1、设置requestcode
Void startActivityForResult(Intent intent, int requestCode):
当开启界面需要返回内容时调用;
2、设置resultcode
setResult(resultcode,intent);
在返回主界面之后,调用主界面的方法:根据返回请求码和结果码的不同进行获取不同页面传回的数据,并进行处理
protected
voidonActivityResult(int requestCode,intresultCode, Intent data){}
短信大全小案例:
1、用listView画UI界面
2、写业务逻辑
3、通过隐式意图,把发送短信页面打开,并且把数据传递过去
代码:
界面
主界面:
跳转界面
事务处理层:
因为跳转界面是系统自带,因此不需要去xml中配置;
短信发送小案例:
总结实现步骤:
1、画mainActivity页面
2、画联系人页面:用一个ListView展示
3、写mainActivity的逻辑 主要代码
4、写短信模板页面,用listView展示
5、实现短信末班
6、通过发送按钮发送短信
代码:
主界面
联系人
短信
界面
主界面:
联系人界面:
ListView:
View内容:
短信界面:
List界面:
View界面:
事务处理:
主界面处理
联系人处理:
信息处理
结果码和请求码:
之前在返回界面的时候会设置,在获取内容时,可以更具他们的数值判断是谁给我的数据;
开启其他界面:
Void startActivityForResult(Intent intent, int requestCode):
当开启界面需要返回内容时调用;
void startActivity(Intent intent)
仅仅视为了打开界面而不需返回内容时;
Activity的生命周期:
生命周期中几个相关函数:
onCreate:在创建界面时调用
onstart:当界面可见时调用
onresume:在界面焦点重新获取时
onrestart:在界面重新可见时(点击home之后再回来)
onpause:在界面焦点失去时,按钮不可按时调用
onstop:再界面不可见时
ondestroy:在界面关闭时
举例:
1、 当点击后退键:
a) 调用onpause
b) 调用onstop
c) 调用ondestory
2、 当横竖切屏
a) 调用onpause
b) 调用onstop
c) 调用ondestory
d) 调用onCreate
e) 调用onstart
f) 调用调用onresume
注意:
当横竖切屏时,Activity会销毁然后再创建
为了防止Activity销毁,一般程序会将Activity切屏朝向写死
在AndroidManifest.xml中的activity中写入属性
1、
2、
任务栈:
1、栈:先进后厨
2、队列:先进先出
3、任务栈:是用来维护Activity的用户操作体验
4、打开一个Activity叫进栈
5、关闭一个Activity叫出栈
6、我们用户操作的Activity永远是栈顶的Activity
7、说我们应用程序退出了,实际上是任务栈清空了但是进程依然存在
(安卓先给应用分配了一个Linux进程)
8、一般情况下,一个应用程序对应一个任务栈
Activity的四种启动模式
1、standard默认模式:按顺序入栈
2、SingleTop启动模式:查看任务栈的最顶层是否为该线程
3、SingleTask启动模式:查看任务栈中是否有该线程(节约了内存)
4、SingleInstance启动模式:单独创建一个任务栈,并且只有一个实例
eg:来电界面;(为了解决内存)