android登录注册_android studio注册页面

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 学习笔记3–车载传感器之毫米波雷达和超声波雷达

    学习笔记3–车载传感器之毫米波雷达和超声波雷达毫米波雷达和超声波雷达。

    2022年9月11日
    0
  • Html背景图片_html背景图片平铺

    Html背景图片_html背景图片平铺这里面有许多简洁的html背景界面,对,重要的是简洁,而且很好看,verynice:https://www.toptal.com/designers/subtlepatterns/可能需要梯子。网站提供一键预览:   …

    2022年10月5日
    0
  • python字典由键插值_SciPyTutorial-一元插值interp1d

    python字典由键插值_SciPyTutorial-一元插值interp1d10.ScipyTutorial-插值interp1d插值,即依据一系列的点$(x_i,y_i)$通过一定的算法找到一个合适的函数来包含(逼近)这些点,反应出这些点的走势规律。interp1d。scipy.interpolate包里有很多的模块可以实现对一些已知的点进行插值,即找到一个合适的函数,例如模块interp1d。当得到插值函数后便可用这个插值函数计算其他$x_j$对应的的$y_j…

    2022年5月15日
    85
  • 微信公众号网页开发,登录授权和微信支付

    微信公众号网页开发,登录授权和微信支付微信公众号的网页开发基本和H5移动端开发一致,主要是涉及到网页授权获取用户信息和使用js-sdk获取微信原生能力支持。开发前准备申请一个测试号:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login用自己微信扫码登录,然后扫码关注当前测试号,这里注意js接口安全域名和网页授权回调域名,需要配置为当前项目地址。使用测试号时用ip即可,但是线上必须是域名。网页授权类似把系统自己的登录体系移除,通过微信授权方式获取微信用户信息。

    2022年6月5日
    130
  • 临时表创建_临时表的创建方式

    临时表创建_临时表的创建方式临时表创建//Anhighlightedblock两种临时表的语法:createglobaltemporarytable临时表名oncommitpreserve|deleterows用preserve时就是SESSION级的临时表,用delete就是TRANSACTION级的临时表一、SESSION级临时表1、建立临时表Sql代码createglobal…

    2022年10月29日
    0
  • 在线学习Java编程的最佳方法[通俗易懂]

    在线学习Java编程的最佳方法[通俗易懂]1.简介Java是使用最广泛的编程语言之一。根据Github的最新报告,Java被列为仅次于JavaScript的第二大最常用的编程语言。掌握Java的人有很多话题。好消息是,您可以在线找到很多内容。在本文中,我们将对所有这些主题进行分类,并提供对文章和代码示例的引用,这些文章和代码示例将指导您完成学习Java的过程。目录1.简介2.先决条件3.基础-核…

    2022年7月8日
    20

发表回复

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

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