上篇:http://jonytan.iteye.com/blogs/161281
Intent and Intent Filters
在Android应用中,切换屏幕可以用Intent类来实现。
Intent用来描述Android应用想做的事情。intent数据结构中最重要的两部分是action、action对应的数据。
action的常用数值有:MAIN(activity的入口)、VIEW、PICK和EDIT等。
action对应的数据是一个URI。例如,为了显示某个人的联系信息,需要创建一个intent。这个intent中包含了一个VIEW action以及可以描述这个人的URI数据。
Intent类还有一个相关类,类名叫IntentFilter。Intent负责发出一个请求,而intent filter负责描述一个Activity(或者intent receiver)所能够处理的所有Intent。
例如有这么一个Activity,它可以显示某人的联系信息,那么它就会发布一个IntentFilter。在这个IntentFilter里内含了如何利用一个包含联系人的数据,来处理action(其数值是VIEW)。
通过AndroidManifest.xml文件,Activity可以发布其IntentFilter。
利用Intent,可以实现从一个屏幕导航到另一个屏幕。
导航功能的实现方法如下:
第1步 调用activity的函数startActivity(myIntent)。
第2步 系统搜索所有已安装应用的Intent Filters,找出最匹配myIntent的Intent Filters,并据此得到所对应的activity。
第3步 用myIntent生成新的activity,并执行这个activity。
在运行时,在调用startActivity情况才处理Intent有以下两大好处:
第1 通过简单地发出一个形如Intent的请求,Activity就可以重用其它组件的功能。
第2 利用一个同等IntentFilter,就可以在任何时候用新的Activity取代旧的Activity。
Intent Receiver
在Android应用中,如果需要针对外部事件(例如:电话铃响、数据网络激活、或者午夜12点的时候等等)编写一些响应代码,那么就要使用Intent Receiver。
当相应事件发生时,尽管Intent Receiver可以使用NotificationManager来提醒用户,但其无法显示用户界面。
在AndroidManifest.xml文件中可以注册Intent Receiver,当然也可以通过编写代码Context.registerReceiver()来注册。
Android应用并不是一定要使用Intent Receiver的。系统本身可以启动Android应用,当然如果有必要,也可以通过触发Intent Receiver来启动Android应用。
使用Context.broadcastIntent(),Android应用也可以向其它的Android应用发送intent广播。
Service
一个Service将一直运行,而且运行时没有用户界面。一个很好的离例子是媒体播放器,它可以依次播放列表中的歌曲。
在媒体播放器的应用中,可能有一个或者多个Activity,用来让用户选择并开始播放歌曲。由于用户在导航到新的屏幕之后仍然希望音乐能继续播放,所以音乐的背景播放本身并不需要处理Activity。在这种情况下媒体播放器的Activity可以用Context.startService()来启动一个Service,这个Service会在后台运行并保持音乐的播放。接下来,系统会继续播放音乐直到结束。(通过阅读Life Cycle of an Android Application可以进一步了解在系统中Service的优先级)
注意,使用Context.bindService()可以联接一个Service(如果还没有运行的话也可以启动它)。联接到Service之后,可以通过这个Service开放的接口与Service进行通信。对于音乐Service,允许进行暂停、重放操作等。
Content Provider
Android应用可以把数据保存到文件、SQLite数据库或者其它可以使用的存储方式。
而Content Provider可以让Android应用之间共享数据。
Content Provider是一个类,它实现了一套标准的方法,可以让Android应用之间保存、获取由Content Provider处理的数据。
分享到:
相关推荐
Android 应用安全实战:Frida 协议分析 Android 应用安全是目前智能手机安全中最重要的问题之一。随着智能手机的普及,Android 应用安全问题越来越受到关注。Android 应用安全不仅关系到用户的隐私和财产安全,还...
Android应用安全防护和逆向分析.pdf 博客:尼古拉斯_赵四
姜维老师的Android应用安全防护和逆向分析是入门安卓逆向的良书,无论从深度和广度来讲都会使你受益颇深
这篇文章将逐步揭示Android应用程序背后的设计思想,从基本的 APK 文件结构到更复杂的系统组件和编程模型。 首先,让我们深入了解 APK 文件。APK 是 Android 应用程序的基本打包格式,实质上是一个被压缩的 ZIP ...
《Android Studio实战:快速高效地构建Android应用》是一本深入探讨Android Studio的实用指南,旨在帮助开发者提升在Android开发中的效率和质量。Android Studio作为Google官方推荐的Android应用程序开发集成开发...
通过分析和理解这些知识点,开发者可以构建一个实用且安全的Android应用锁。对于初学者来说,这个资源可以作为了解Android安全性和系统级交互的一个良好起点。对于经验丰富的开发者,这个实现可能提供了一些优化和...
3. 公司 Android 应用自主研发技术实施的可行性:公司可以自主研发 Android 应用,借助免费的 API 及开源代码快速集成应用,紧跟消费市场需求和 Android 版本更新速度。 4. Android 应用研发市场发展的前景:...
从提供的文件信息中可以提取的知识点非常有限,且主要是关于获取技术书籍资源的信息,关于标题“Android应用开发揭秘pdf”和标签“Android 应用开发”的实质性内容并未提供。但尽管如此,我们可以根据这些有限的信息...
《Android应用开发详解教材源码(下册)》是一本深度剖析Android应用开发的实践教程,包含8个单元,涵盖了30多个实例源码。这些实例旨在帮助读者深入理解Android平台上的应用程序设计与实现,从基础到高级,全方位地...
本文将以“HelloActivity”为例,详细剖析Android应用程序的组成及其内部结构,帮助读者深入掌握Android应用的构建原理。 #### 二、HelloActivity概述 **HelloActivity** 是一个经典的入门级示例程序,旨在展示...
根据提供的信息,我们可以推断出...此外,《Android应用开发揭秘》还可能包含更多关于最佳实践、案例分析等内容,进一步提升读者的实际开发能力。对于初学者而言,这本书无疑是进入Android开发领域的良好起点。
Android 应用开发环境搭建是 Android 开发者的必备知识之一,本文将指导读者从零开始搭建 Android 应用开发环境,包括安装 JDK、Eclipse、ADT 插件和 Android SDK,并创建第一个 Android 应用程序 HelloWorld。...
《Android应用软件前景分析》 随着移动互联网的快速发展,Android应用软件已经成为日常生活和工作中不可或缺的一部分。作为全球最大的智能手机操作系统,Android平台拥有庞大的用户基础,这为Android应用软件提供了...
系统包括 3 个主要模块:重包装分析模块、静态分析模块和动态分析模块,最后实现的原型系统能够在客户端上传等待分析的 Android 应用程序,实现对程序安全性的分析,并将分析结果反馈给用户。 Android 应用程序...
Android 应用市场安全性检测 Android 应用市场是移动互联网时代的重要组成部分,随着智能手机的普及,Android 应用市场的规模不断扩大。然而,随着应用市场的扩大,安全性问题也日益严重。第三方应用市场的出现,...
在Android应用开发中,内存管理是一项至关重要的任务,因为它直接影响到应用的性能、稳定性和用户体验。内存监控工具能够帮助开发者检测和分析应用的内存使用情况,预防和解决内存泄漏等问题。"Emmagee.apk"可能是一...
Android Studio是Google推出的一款专为Android开发者设计的官方IDE,基于IntelliJ IDEA,提供了一系列工具和功能,如代码编辑、调试、性能分析和版本控制等,以支持高效的Android应用开发。 2. **项目设置与环境...
在Android应用程序开发中,开发者需要理解并掌握一系列关键知识点,这些知识点构成了应用开发的基础,并且与设计思想密切相关。本文将深入探讨这些核心概念,旨在帮助开发者不仅能够编写代码,更能理解其背后的逻辑...