Android应用程序由4个模块而成:Activity、Intent、Content Provider、Service。
当然,也不是每个Android应用程序都必须由这四部分组成,可以根据开发者需求进行组合,比如上面创建的HelloWord项目就只使用了Activity这一个模块。但是,任何一个应用程序都必须在AndroidMainfest.xml文件中声明使用到的这些模块。
1.Activity
Activity是最基本的模块,我们在HelloWord项目中已经使用过。我们称之为“活动”,在应用程序中,一个Activity通常就是一个单独的屏幕页面。每一个活动都被实现为一个独立的类,并且从活动基类中集成而来,活动类将会显示由视图控件组成的用户接口,并对事件作出响应。
简单理解,Activity代表一个用户所能看到的屏幕,主要用于处理应用程序的整体性工作,例如,监听系统事件(按键事件、触屏事件等),为用户显示指定的View,启动其他Activity等。所有的Activity都继承于androidx.appcompat.app.AppCompatActivity类,该类是Android提供的基层类,其他的Activity继承该父类后,通过父类的方法来实现各种功能,这种设计在其他领域也较为常见。
2.Intent
Android用Intent这个特殊类实现在Activity与Activity之间的切换。Intent类用于描述应用的功能。
通过解析各种Intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,Activity将会调用startActivity(Intent intent)方法。然后,系统会在所有已安装的应用程序中定义的IntentFilter中查找,找到最匹配myintent的Intent对应的Activity。新的Activity接收到myintent的通知后,开始运行。当startActivity方法被调用时,将触发解析myintent的动作,该机制提供了两个关键好处:
1).Activity能够重复利用从其他组件中以Intent形式产生的请求。
2).Activity可以在任何时候被具有相同IntentFilter的新的Activity取代。
两个Activity之间的切换:
要实现两个Activity的跳转,我们可以将跳转的Activity类名绑定到Intent对象中,然后通过startActivity方法激活Intent对象中所指定的Activity。
想要跳转Activity,需要将Activity在AndroidMainfest.xml文件中声明
3.Content Provider
简介:
在Android中,应用程序彼此之间相互独立的,它们都运行在自己独立的虚拟机中。Content Provider 提供了程序之间共享数据的方法,一个程序可以使用Content Provider 定义一个URI,提供统一的操作接口,其他程序可以通过此URI访问指定的数据,进行数据的增、删、改、查。
Content Provider作为应用程序之间唯一的共享数据的途径,Content Provider 主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口。
Android 系统为一些常见的数据类型(如音乐、视频、图像、手机通信录联系人信息等)内置了一系列的 Content Provider, 这些都位于android.provider包下。持有特定的许可,可以在自己开发的应用程序中访问这些Content Provider。
共享的数据类型包括 audio、 video、 images 、personal contact information 等等 详见android.provider
如果想让自己的数据共享,有两种方法:
1、创造自己的content provider
2、将数据添加到已存在的provider中 (要有适当的权限)
4.Service
service即“服务”的意思,既然是服务,那么Service将是一个生命周期长且没有用户界面的程序。比如一个正在播放列表中播放歌曲的媒体播放器,在这个媒体播放器应用中,应该有多个Activity,让用户可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的Activity,因为拥有者会认为在导航到其他屏幕时音乐应该还在播放。
下面通过一个简单例子来学习Service的使用,该例子通过Service来播放一首MP3,当用户点击“开始”按钮,音乐开始我播放;点击“停止”按钮,停止音乐播放。
我们使用Service时同样需要AndroidMainfest.xml中声明,声明方式如下:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119116.html