书签 分享 收藏 举报 版权申诉 / 28

类型(5)第6章组件通信与广播消息.pptx

  • 上传人:拉拉链
  • 文档编号:12719437
  • 上传时间:2022-03-30
  • 格式:PPTX
  • 页数:28
  • 大小:205.25KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    (5)第6章组件通信与广播消息.pptx
    资源描述:

    《(5)第6章组件通信与广播消息.pptx》由会员分享,可在线阅读,更多相关《(5)第6章组件通信与广播消息.pptx(28页珍藏版)》请在微传网上搜索。

    1、第6章 组件通信与广播消息,本章学习目标,了解使用Intent进行组件通信的原理掌握使用Intent启动Activity的方法掌握获取Activity返回值的方法掌握发送和接收广播消息的方法,6.1 Intent简介,Intent是一个动作的完整描述,包含了动作的产生组件、接收组件和传递的数据信息Intent可在不同组件之间传递的消息,这个消息在到达接收组件后,接收组件会执行相关的动作 Intent为Activity、Service和BroadcastReceiver等组件提供交互能力Intent的用途启动Activity和Service在Android系统上发布广播消息广播消息可以是接收到特

    2、定数据或消息,也可以是手机的信号变化或电池的电量过低等信息,6.1 Intent简介,6.1.1 启动Activity在Android系统中,应用程序一般都有多个Activity,Intent可以实现不同Activity之间的切换和数据传递启动Activity方式显式启动,必须在Intent中指明启动的Activity所在的类隐式启动, Android系统根据Intent的动作和数据来决定启动哪一个Activity,也就是说在隐式启动时,Intent中只包含需要执行的动作和所包含的数据,而无需指明具体启动哪一个Activity,选择权有Android系统和最终用户来决定,6.1 Intent简

    3、介,6.1.1 启动Activity显式启动创建一个Intent指定当前的应用程序上下文以及要启动的Activity把创建好的这个Intent作为参数传递给startActivity()方法,6.1 Intent简介,6.1.1 启动Activity显式启动下面用IntentDemo示例说明如何使用Intent启动新的Activity。IntentDemo示例包含两个Activity,分别是IntentDemoActivity和NewActivity。程序默认启动的Activity是IntentDemo,在用户点击“启动Activity”按钮后,程序启动的Activity是NewActivit

    4、y,6.1 Intent简介,6.1.1 启动Activity显式启动在IntentDemo示例中使用了两个Activity,因此需要在AndroidManifest.xml文件中注册这两个Activity。注册Activity应使用标签,嵌套在标签内部。,6.1 Intent简介,6.1.1 启动Activity显式启动AndroidManifest.xml文件代码如下,6.1 Intent简介,6.1.1 启动Activity显式启动Android应用程序中,用户使用的每个组件都必须在AndroidManifest.xml文件中的节点内定义。在上面的代码中,节点下共有两个节点,分别代表应用

    5、程序中所使用的两个Activity,IntentDemoActivity和NewActivity。,6.1 Intent简介,6.1.1 启动Activity显式启动在IntentDemoActivity.java文件中,包含了使用Intent启动Activity的核心代码:,6.1 Intent简介,6.1.1 启动Activity显式启动在点击事件的处理函数中,Intent构造函数的第1个参数是应用程序上下文,在这里就是IntentDemoActivity;第2个参数是接收Intent的目标组件,这里使用的是显式启动方式,直接指明了需要启动的Activity。,6.1 Intent简介,6

    6、.1.1 启动Activity隐式启动隐式启动的好处在于不需要指明需要启动哪一个Activity,而由Android系统来决定,这样有利于降低组件之间的耦合度。选择隐式启动Activity,Android系统会在程序运行时解析Intent,并根据一定的规则对Intent和Activity进行匹配,使Intent上的动作、数据与Activity完全吻合。匹配的组件可以是程序本身的Activity,也可以是Android系统内置的Activity,还可以是第三方应用程序提供的Activity。因此,这种方式强调了Android组件的可复用性。,6.1 Intent简介,6.1.1 启动Activi

    7、ty隐式启动如果程序开发人员希望启动一个浏览器,查看指定的网页内容,却不能确定具体应该启动哪一个Activity,此时则可以使用Intent的隐式启动方式,由Android系统在程序运行时决定具体启动哪一个应用程序的Activity来接收这个Intent(什么应用场景?)程序开发人员可以将浏览动作和Web地址作为参数传递给Intent,Android系统则通过匹配动作和数据格式,找到最适合于此动作和数据格式的组件。,6.1 Intent简介,6.1 Intent简介,6.1.1 启动Activity隐式启动Intent的语法如下:,6.1 Intent简介,6.1.1 启动Activity隐式

    8、启动Intent构造函数的第1个参数是Intent需要执行的动作,Android系统支持的常见动作字符串常量可以参考表。第2个参数是URI,表示需要传递的数据。,6.1 Intent简介,6.1.1 启动Activity隐式启动WebViewIntentDemo示例说明了如何隐式启动Activity,用户界面,6.1 Intent简介,6.3 广播消息,广播消息Intent的另一种用途是发送广播消息,应用程序和Android系统都可以使用Intent发送广播消息,广播消息的内容可以与应用程序密切相关的数据信息,也可以Android的系统信息,例如网络连接变化、电池电量变化、接收到短信或系统设置

    9、变化等。如果应用程序注册了BroadcastReceiver,则可以接收到指定的广播消息。 使用Intent发送广播消息非常简单,只需创建一个Intent,并调用sendBroadcast()函数就可把Intent携带的信息广播出去。但需要注意的是,在构造Intent时必须定义一个全局唯一的字符串,用来标识其要执行的动作,通常使用应用程序包的名称。如果要在Intent传递额外数据,可以用Intent的putExtra()方法。下面的代码构造用于广播消息的Intent,并添加了额外的数据,然后调用sendBroadcast()发送广播消息:,6.3 广播消息,sendBroadcast()代码B

    10、roadcastReceiver用于监听广播消息,可以在AndroidManifest.xml文件或在代码中注册一个BroadcastReceiver,并使用Intent过滤器指定要处理的广播消息。,6.3 广播消息,onReceive()方法创建BroadcastReceiver需继承BroadcastReceiver类,并重载onReceive()方法。示例代码如下:当Android系统接收到与注册BroadcastReceiver匹配的广播消息时,Android系统会自动调用这个BroadcastReceiver接收广播消息。在BroadcastReceiver接收到与之匹配的广播消息后

    11、,onReceive()方法会被调用(事件处理函数),但onReceive()方法必须要在5秒钟执行完毕,否则Android系统会认为该组件失去响应,并提示用户强行关闭该组件。,6.3 广播消息,BroadcastReceiverDemo示例BroadcastReceiverDemo示例说明了如何在应用程序中注册BroadcastReceiver组件,并指定接收广播消息的类型。BroadcastReceiverDemo示例的界面如图所示,在点击“发生广播消息”按钮后,EditText控件中内容将以广播消息的形式发生出去示例内部的BroadcastReceiver将接收这个广播消息,并显示在用户

    12、界面的下方。,6.3 广播消息,BroadcastReceiverDemo示例用户界面,6.3 广播消息,BroadcastReceiverDemo示例AndroidManifest.xml文件中包含发送广播消息的代码,其关键代码如下,6.3 广播消息,BroadcastReceiverDemo示例在代码的第14行中创建了一个节点,在第15行中声明了Intent过滤器的动作为“edu.hrbeu.BroadcastReceiverDemo”,这与BroadcastReceiverDemoActivity.java文件中Intent的动作相一致,表明这个BroadcastReceiver可以接收

    13、动作为“edu.hrbeu.BroadcastReceiverDemo”的广播消息,6.3 广播消息,BroadcastReceiverDemo示例MyBroadcastReceiver.java文件创建了一个自定义的BroadcastReceiver,其核心代码如下: 代码第1行首先继承了BroadcastReceiver类,并在第3行重载了onReveive()函数。当接收到AndroidManifest.xml文件定义的广播消息后,程序将自动调用onReveive()函数进行消息处理。代码第4行通过调用getStringExtra()函数,从Intent中获取标识为message的字符串数据,并使用Toast()函数将信息显示在界面,谢谢观看/欢迎下载,BY FAITH I MEAN A VISION OF GOOD ONE CHERISHES AND THE ENTHUSIASM THAT PUSHES ONE TO SEEK ITS FULFILLMENT REGARDLESS OF OBSTACLES. BY FAITH I BY FAITH,

    展开阅读全文
    提示  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:(5)第6章组件通信与广播消息.pptx
    链接地址:https://www.weizhuannet.com/p-12719437.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    微传网用户QQ群:732276833  微博官方号:微传网官方   知乎号:微传网

    Copyright© 2025 微传网 weizhuannet.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号   营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png


    收起
    展开