Android初学习之intent-filter意图过滤器
Intent Filter就是用来注册 Activity 、Service 、 Broadcast、Receiver(四大组件) 具有能在某种数据上执行一个动作的能力。使用 Intent Filter ,应用程序组件告诉 Android ,它们能为其它程序的组件的动作请求提供服务,包括同一个程序的组
件、本地的或第三方的应用程序。
注:因为是初学,我们在这里只浅谈activity并进行一些实验,了解 action android:name=“android.intent.action.MAIN” /
category android:name=“android.intent.category.LAUNCHER” /
的作用。
android.intent.action.MAIN表明了一个应用启动时首先启动这个Activity的动作。
android.intent.category.LAUNCHER 当activity中出现这个东西的时候,说明,这个页面就要通过APP图标来开启。 (下面会实验说明)
代码:
这个代码块解决的问题是:一个应用程序可以有许多个activity(页面),并且它们是同级的,那么在启动APP时,页面应该如何显示?OK,为了解决这个问题,我们来做实验(实验五之后添加SecondActivity):
实验一:去掉intent-filter
实验二:加上intent-filter但不添加action和category
此时没有报错,会提示手机安装程序。
此时我给大家说明一下实验现象:
1.手机提示安装,安装完后自动打开
2.but!当我返回手机桌面的时候,发现界面没有APP图标!! 对没有APP图标。
3.当我打开手机的应用管理的时候,可以看到这个应用。
这个问题说明android.intent.category.LAUNCHER 当activity中出现这个东西的时候,说明,这个页面就要通过APP图标来开启。 没有的话,就没有图标
实验四:去掉action加上category
此时运行成功:
实验现象:
和实验三差不多,但是有一点不同: 安装完成后没有自动打开。
同时桌面也没有图标。当我打开应用管理器的时候,实验三中可以强制停用此应用,但是实验四没有,也就是说,安装后,这个应用没有打开。但是为什么没有显示呢? 显示了又没用,点不开,显示它干嘛。 实验四验证了action动作的作用。 同时,说明动作:给这个APP的这个页面设定“最重要”的标签的动作,让程序识别,从而“第一”打开。
实验五:添加Secondactivity,并且都加上action动作和cotegory类别。(SecondActivity.java代码就不贴了,跟MainActivity不同的地方就是setContentView中的id是我设置的另一个xml布局文件,以便之后实验需要)
代码:
此时运行现象:
出现两个APP图标。两个图标,分别是我设置的两个activity页面的内容。 当我打开后台时,后台运行的程序只有一个,而不是由两个。又验证了android.intent.category.LAUNCHER 当activity中出现这个东西的时候,说明,这个页面就要通过APP图标来开启。
实验六:单独去掉第二个activity页面的action动作。 以及单独去掉第二个页面的cotegory属性。
实验现象:只出现第一个页面的图标,第二个页面没有显示。
OKOK,意图过滤器在activity中的action动作,和cotegory类别 的应用就到这里实验完毕,之后会补充内容。
作者:杜先生。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341