Android开发入门:如何激活和关闭组件

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 11:07 我要评论(0)

Content Provider需要Content Resolver激活,其他的三大组件活动、服务和广播接收者,被一种叫做意图(intent)的异步消息激活。下面将分别介绍各组件的激活和关闭方 法。

本篇将介绍如何激活组关闭组件等。本文的主题如下:

1、激活组件:意图(Intents)

1.1、活动(Activity)组件的激活

1.2、服务(Service)组件的激活

1.3、广播接收者(Broadcast receiver)组件的激活

2、关闭组件

3、清单文件

4、Intent过滤器

1、激活组件:意图(Intents)

当 接收到ContentResolver发出的请求后,内容提供者被激活。而其它三种组件活动、服务和广播接收者,被一种叫做意图(intent)的异 步消息激活。意图是一个保存着消息内容的Intent对象。对于活动和服务来说,Intent对象指明了请求的操作名称以及作为操作对象的数据的URI和 其它一些信息。

例如,它可以传递对活动的一个请求,让它为用户显示一张图片,或者让用户编辑一些文本。而对于广播接收者而言,Intent对象指明了广播的行为。 例如当照相按钮被按下,它可以对所有感兴趣的对象广播。

对于每种组件来说,激活的方法是不同的。下面将分别介绍活动、服务、广播接收者组件的激活方法。

1.1、活动(Activity)组件的激活

通 过传递一个Intent对象至Context.startActivity()或Activity.startActivityForResult()以 载入(或指定新工作给)一个活动。相应的活动可以看到初始的意图,这个意图通过getIntent() 方法来查看激活活动。Android调用活动的onNewIntent()方法传递任何后续的意图。

一 个活动经常启动了下一个。如果它期望它所启动的那个活动返回一个结果,它会调用startActivityForResult()而不是 startActivity()。例如,如果它启动了一个活动让用户挑选一张照片,它可能会返回被选中的照片。结果以一个Intent对象传递调用活动的 onActivityResult() 方法。

1.2、服务(Service)组件的激活

通过传递一个Intent对象至Context.startService()以启动一个服务(或给予正在运行的服务以一个新的指令)。 Android调用服务的onStart()方法并将Intent对象传递给它。

与 此类似,一个Intent可以传递给Context.bindService()以在调用的组件和目标服务之间建立持续的连接。这个服务会在调用 onBind() 方法中接受这个Intent对象(如果服务尚未启动,bindService()会先启动它)。例如,一个活动可以连接至前面讲到的音乐播放服务,并提供 给用户一个可操作的(用户界面)以对播放进行控制。这个活动可以调用bindService()来建立连接,然后调用服务中定义的对象来控制播放。

1.3、广播接收者(Broadcast receiver)组件的激活

应用程序可以通过将Intent对象传递给

Context.sendBroadcast()

Context.sendOrderedBroadcast()

Context.sendStickyBroadcast()

及其它类似方法来产生一个广播。Android会通过onReceive()方法将intent传递给所有对此广播有兴趣的广播接收者。

2、关闭组件

内容提供者仅在响应ContentResolver提出请求的时候激活。而一个广播接收者仅在响应广播信息的时候激活。所以,没有必要去显式的关闭 这些组件。

而活动则不同,它提供了用户界面。与用户进行会话,所以只要会话依然持续,哪怕对话进程空闲,它都会一直保持激活状态。与此相似,服务也会在很长一 段时间内保持运行。所以Android提供方法有序地关闭活动和服务。

可以通过调用它的finish()方法来关闭一个活动。一个活动也可以通过调用finishActivity()方法来关闭另外一个活动 (它用startActivityForResult() 启动的)。

服务可以通过调用它的stopSelf()方法来停止,或者调用 Context.stopService()。

当组件不再被使用的时候或者Android必须要为更多活跃的组件回收内存时,组件也可能会被系统关闭。

3、清单(manifest)文件

Android启动一个应用程序组件之前,它必须知道那个组件是存在的。所以,应用程序会在一个清单(manifest)文件中声明它的组件,这 个文件会被打包到Android包中。这个.apk文件还将包括应用程序的代码、文件以及其它资源。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...