android 中Activity 五种不同的启动方式

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

大家都知道合理的利用系统资源,减少系统不被占用太多,是每个开发必须思考的问题,众所周知 应用程序是一系列有着特定功能的Activities组成,它们有自己的属性和行为。用户可以在Home中通过启动快捷方式将当前进程引入特定的Activites,或者可以在其它程序进程中启动外部的Activities。有的人会问,了解程序的启动方式有用吗?当然,了解不同的启动方式才能更好的根据需要设计Activities。

下边将介绍五种与其相关的设计模式:

通过Home中的快捷方式图标(或者下拉的Application

Launcher)启动:这是最常见的启动方式,而且代表程序具备独立的运行条件。通常会在Manifest中指定某个Activity的android.intent.category属性为Launcher。

在其它程序中间接启动:这体现了Activities在Android中一个非常重要的特性“重用性”,例如:用户在当前的操作过程中希望将特定的信息通过Email的方式发送给好友,一般情况下会利用系统默认的处理邮件Activity响应这项请求,如果恰巧此时系统中存在其它类似intent-filter的Activites,那么将会提供给用户一个可选择的对话框,用户可以根据需要启动恰当的应用程序,这个过程可以看作为间接的启动Applications。或者在预知当前系统配置的情况下,直接应用(startActivity() 或者startActivityForResult())启动特定的Activity。

StartActivity():

通过这种方式启动应用程序可以看作为独立运行于系统中,启动它的parent无需得到其所运行的返回值,更具体的讲是一个Standalone的应用程序启动了另一个有着同样Standalone特性的程序。

StartActivityForResult():

通过方法的命名可以很直观的看到,其最大的作用是当启动了某个Activity后,parent依然关联着当前进程所处理的Activity。当操作完成后,会有特定的返回值作为Parent响应某些Events的结果。(Androidres.com)

强制程序仅以被其它程序调用的方式启动(没有直接的启动入口):在系统中有相当一部分的应用程序需要有严格的运行条件(Context),其无法以Stand

alone的方式独立运行于进程中。具备这种特性的Application大体上分为两种:其一,带有特定返回值的应用程序。parent出于当前操作需要,通过启动其它Application来获得某些特定的资源。例如:输入法或者文件资源选择器等。另外一种情况,经常被调用来修改系统设置或者提供单一有特定目的的操作。这样的Application无需在Home中提供快捷启动方式,其仅仅被其它某些程序在特定的需求下来满足需求。例如:更换系统铃音程序。

在一个Application中包含有多个Mian

Activities,并且各自具备有独立的启动入口:很多开发者都习惯于默认的开发配置,一个Application仅仅包含一个独立的应用。然后在特定的需求下可以打破这个限定,系统允许开发者将多个Main

Activities应用捆绑在同一个Application中,而且这些Main

Activities可以在Home中有独立的启动快捷方式。然而有非常重要的一点需要特别强调,这种方式并不提倡在任何情况下采用,一般当两个应用程序需要调用相同的系统资源或者包含有大部分相同功能的应用时,才可以考虑采用这种方式来简化用户的安装过程(另外一个角度来看,起到优化系统资源的目的)。技术上需要注意为不同的Main

Activity定义不同的Task

affinity。例如:Camera和Camcorder,它们共同使用摄像头,而且同样采用Gallery作为资源管理器,他们的Task

Affinity分别设置为:”com.android.camera” 和 “com.android.videocamera”。

以Widget的方式体现Activity的应用价值:严格意义上来看,这的确算得上是一种启动方式,某些Application将部分常用的功能以Widget的形式在Home或者其它Application中被引用(单击主屏选择,相应的应用程序,系统的SlidingDrawer,都可以体现)。

以上是Android系统中在不同的需求下来启动Activity的方式,开发者可以根据特定的需求为Application设定一种恰当的启动方式。

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

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

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

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

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

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

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

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

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

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

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

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

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

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