android登录注册_android studio注册页面

android登录注册_android studio注册页面image.pngBroadcastReceiver广播作为四大组件之一,使用方式也是多种多样的,既可以自己在manifest中注册,也可以在java代码中动态注册,既可以接收由系统发出的广播,也可以接受自己定义并发送的广播。广播可以实现进程内以及跨进程之间的通信。roadcastReceiver分类从注册方式上区分:动态注册以及静态注册(显示广播和隐式广播)从发送方式上区…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

android登录注册_android studio注册页面

image.png

BroadcastReceiver

广播作为四大组件之一,使用方式也是多种多样的,既可以自己在manifest中注册,也可以在java代码中动态注册,既可以接收由系统发出的广播,也可以接受自己定义并发送的广播。

广播可以实现进程内以及跨进程之间的通信。

roadcastReceiver分类
  • 从注册方式上区分:动态注册以及静态注册(显示广播和隐式广播)
  • 从发送方式上区分:无序广播和有序广播
  • 从处理类型上区分:前台广播和后台广播
  • 从运行方式上区分:普通广播和Sticky广播(已弃用)
  • 从发送者区分:系统广播和自定义广播

BroadcastReceiver作为Android四大组件之一,不像Activity,没有可显示的界面。

BroadcastReceiver包括两个概念,广播发送者和广播接收者(Receiver),这里的广播实际就是指Intent,程序可以自己发送广播自己接收,也可以接受系统或其他应用的广播或是发送广播给其他应用程序。

发送者可以通过类似Context.sendBroadcast接口发送广播.

接收者通过Context.registerReceiver()动态注册或在AndroidManifest.xml文件中通过<receiver>标签静态注册.

注册完成后,当发送者发送某个广播时系统会将发送的广播(Intent)与系统中所有注册的符合条件的接收者(Receiver) 的IntentFilter进行匹配,若匹配成功则执行相应接收者的onReceive函数,匹配规则见Intent和IntentFilter的匹配规则。

IntentFilter(Intent过滤器)

一个 Activity 也可以有多个 IntentFilter,相当于多了几个过滤器,被筛选到的可能就更大了。

<activity
    android:name=".activity.launchmode.SingleTaskActivity"
    android:alwaysRetainTaskState="true"
    android:label="singleTask"
    android:launchMode="singleTask"
    android:taskAffinity="top.shixinzhang.task2">
    <intent-filter>
        <action android:name="top.shixinzhang.action.test"/>

        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="top.shixinzhang.category.test"/>

        <data android:mimeType="text/plain"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>

        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>

        <data
            android:host="myapp.mycompany.com"
            android:scheme="myapp"/>
    </intent-filter>
</activity>

IntentFilter 的匹配规则

action 的匹配规则

action 可以理解为一个组件具备功能、可以进行什么操作。系统为我们提供了很多内置的 action,当然也可以自定义。

<intent-filter>
    <action android:name="android.intent.action.EDIT" />
    <action android:name="android.intent.action.VIEW" />
    ...
</intent-filter>

Intent 中的 action 至少有一个与过滤器的匹配,才能调用这个过滤器所在的组件,否则无法命中。

action 名称作用 备注
android.intent.action.MAIN 标识 Activity 为一个程序的开始 –
android.intent.action.CALL 呼叫指定的电话号码 –
android.intent.action.DIAL 用拨号面板 –
andriod.intent.action.ALL_APPS 列出所有的应用 –
android.intent.action.ANSWER 处理呼入的电话 –
android.intent.action.VIEW 显示用户的数据 通用,可以是电话、浏览器等
android.intent.action.SENDTO 发送消息 可以是短信、彩信、邮件等
android.intent.action.EDIT 对给定数据以编辑的形式访问 –
android.intent.action.PICK 从列表中选择信息 一般用于选择联系人或者图片等
android.intent.action.CHOOSER 显示一个Activity选择器 比如常见的选择分享到哪里
category匹配规则

category 即分类,和 action 一样,一个过滤器可以包含多个分类:

<intent-filter>
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    ...
</intent-filter>

和 action 匹配规则(有一个匹配即可)不同的是,category 匹配时,要求你的 Intent 中的 category 必须和过滤器中声明的完全匹配。

例,startActivity(intent) 中的 intent 的分类不能是 android.intent.category.DEFAULT 和 android.intent.category.BROWSABLE 以外的。

android登录注册_android studio注册页面

image.png

data匹配规则

data 表示该组件可以支持的数据格式与类型。

同样,一个过滤器也可以有多个 data:

<intent-filter>
    <data android:mimeType="video/mpeg" android:scheme="http" ... />
    <data android:mimeType="audio/mpeg" android:scheme="http" ... />
    ...
</intent-filter>

一个 data 由mimeType和scheme组成。

mimeType指的是支持的数据类型与格式,常见的有:

  • text/plain
  • image/jpeg
  • video/*
  • audio/*

/ 号前面的是数据类型,后面是具体格式。

scheme 就是常见的 URI 格式:

<scheme>://<host>:<port>/<path>
参数 含义 说明
scheme 协议类型 最重要,协议类型决定了如何访问数据,比如是本地还是网络
host 主机 第二重要,主机地址决定了具体 ip
port 端口 第三重要,一个主机可能有多个网卡端口,有了端口后才能访问到具体
path 具体路径 最后一级,表示要访问的文件夹路径

例如:

http://www.baidu.com:80/search/info
file://emulator/0/sdcard/shixinzhang

scheme 和 mimeType 组成一个 data。而 data 的匹配规则就是:intent 中的 data 至少可以匹配过滤器中的一个。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194807.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Python3 :PyCharm + Qt designer 学习 + 实例[通俗易懂]

    Python3 :PyCharm + Qt designer 学习 + 实例[通俗易懂]python3PyQt5pycharm环境搭建PyQt官网PyQt5简单介绍PyQt是由PhilThompson开发Qt库是目前最强大的库之一PyQt是一个创建GUI应用程序的工具包它是Python编程语言和Qt库的成功融合Qtdesigner可视化拖动生成界面,然后利用pycharm进行转换.py文件,再编写槽函数,实现进一步的功能,不…

    2022年11月2日
  • 网络流量分析netflow

    网络流量分析netflow前言  随着宽带互联网在中国的迅速发展,全国各大电信运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长。电信运营商需要通过可靠、有效的网络业务流量监测系统对其网络以及网络所承载的各类业务进行及时、准确的流量和流向分析,进而挖掘网络资源潜力,控制网络互联成本,并为网络规划、优化调整和业务发展提供基础依据。  目前国内电信运营商已建的网络管理系统所能实现

    2022年4月29日
  • TechEd亲历图集

    TechEd亲历图集 矗立在主会场北门的巨大徽标。老杨的身高大约和中间的小写字母差不多。 整个会场到处彩旗飘飘。 现场的巨大的大会日程表(总共4张如图这么大的)贴满了一面墙。长长的主讲人名单里,大都是大家耳熟能详的技术高手。 现场的微软展台,虽然距离开会还有两个多小时,已经聚集了不少人 会前,会场旁边的交流社区成了参会新朋老友的聚集地,热闹非凡 te…

    2022年7月12日
  • visual c++2010密钥

    visual c++2010密钥6VPJ7-H3CXH-HBTPT-X4T74-3YVY7

    2022年5月18日
  • python实现 最短路径算法

    python实现 最短路径算法一、Floyd-Warshall算法1.算法简介Floyd-Warshall算法是解决任意两点间的最短路径的一种算法。通常可以在任何图中使用,包括有向图、带负权边的图。存储方式采用邻接矩阵2.示例0 1 2 6 3 1 0 3 5 2 2 3 0 8 5 6 5 8 0 …

    2022年6月3日
  • navicat12激活码在线生成(JetBrains全家桶)

    (navicat12激活码在线生成)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWNlbnNlSWQi…

    2022年3月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号