android_01Activity_知识小结

学习android最开始就是学习activity,每位同学的学习经历应该都类似

1、activity是什么?

activity中文译为活动,和用户的活动都需要依赖它,activity是一个重量型的角色,其他的三大组件都需要它才能正常工作。

activity得生命周期

onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()

onCreate()和onDestroy()代表创建和销毁

onStart()和onStop()代表可见和不可见

onResume()代表和用户交互

常用的回调方法:

onCreate()方法可以用来初始化界面资源,

onStop()这里可以用来停止服务或者线程,

onDestroy()方法可以用来释放资源。

2、activity启动模式?

android:launchMode=""

singleTask:单例模式,在activity栈中有a活动的实例,那么启动a活动会调用栈中已有的a活动,而不会生成新的a活动。

standard:标准模式,可以有多个相同的activity实例,每次启动活动都会新生成一个活动实例。

singTop:启动活动时如果该活动已经在栈顶,则不会新生成该活动。

singInstence:用该模式启动的activity是单例的,并且运行在独立的activity栈中,该栈中不存在其他activity.

3、activity中intent匹配规则?

显示启动activity很简单,只要

Intent intent = new Intent(xx.this,yy.class);

startActivity(intent);

就可以调到指定的activity。隐式启动activity需要Intent加入匹配规则,Action、data、category

一个过滤器可以包含0-n个Action,如果被启动的activity添加了action规则,Intent需要指定同样的action。

一个过滤器可以包含0-n个category,如果被启动的activity添加了多个category,Intent只要指定其中一个category就可以。

一个过滤器可以包含0-n个data,每个data可以定义一个mimitype和一个uri结构体

URI结构体由

<scheme>://<host>:<port>/<path>组成

a.当Intent中没有包含任何URI和MIMETYPE时,只有过滤器没有定义任何URI和MIMETYPE时才能通过测试. 


b.当Intent只包含URI没有包含MIMETYPE时,只有Intent中的URI匹配过滤器的URI且过滤器没有定义MIMETYPE时通过测试. 


c.当Intent只包含MIMETYPE时,只有Intent中的MIMETYPE匹配过滤器的MIMETYPE且过滤器没有定义URI时通过测试. 


d.当Intent同时包含URI和MIMETYPE时,这时进行两部分测试,一是测试Intent中的MIMETYPE和过滤器中的MIMETYPE是否匹配,二是测试URI是否匹配,如果过滤器没有定义URI,

那么当Intent中的URI包含"file:"或"content:"时通过测试.特别注意,如果过滤器有定义URI,即使Intent中的URI包含"file:"或"content:"也不能通过测试,必须匹配才行. 
 
Intent内容设置: 


设置action使用setAction 


设置category使用addCategory,可以增加多个 


单独设置URI使用setData 


单独设置MIMETYPE使用setType 


同时设置URI和MIMETYPE使用setDataAndType 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值