关于Activity和Task的设计思路和方法Word格式.docx
- 文档编号:15821588
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:16
- 大小:538.13KB
关于Activity和Task的设计思路和方法Word格式.docx
《关于Activity和Task的设计思路和方法Word格式.docx》由会员分享,可在线阅读,更多相关《关于Activity和Task的设计思路和方法Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
建议大家亲自利用Emulator或者Android-powereddevice测试实例中的效果,这样可以帮助更加清晰的理解一些模块的含义。
(注意:
可能会因为硬件对于某些功能无法提供支持,所以有一些实例可能无法在你的测试机中正常浏览)
首先需要清楚一些基础模块:
∙Applications
∙Acitivities
∙ActivityStack
∙Tasks
以上这四个模块对于理解这篇文章非常重要,下边就来逐一的简单介绍其具体的含义和用法(也可以通过其链接直接查看官方文档)。
Applications
任何一个AndroidApplication基本上是由一些Activities组成,当用户与应用程序交互时其所包含的部分Activities具有紧密的逻辑关系,或者各自独立处理不同的响应。
这些Activities捆绑在一起成为了一个处理特定需求的Application,并且以“.apk”作为后缀名存在于文件系统中。
Android平台默认下的应用程序例如:
Email、Calendar、Browser、Maps、TextMessage、Contacts、Camera和Dialer等都是一个个独立的Apps。
Activities
上边已经提到Activities是构成Applications的主要组成部分,其实可以更为具体的理解为Application仅仅是一个抽象的标签,它将系统内一部分Activities关联在一起,协同完成用户的特定需求。
安装Application的过程也可以简单理解为将其所包裹的Activities导入到当前的系统中,如果系统中已经存在了相同的Activities,那么将会自动将其关联,而不会重复安装相同的Activities,避免资源的浪费。
Application卸载的过程也会检查当前所关联的Activities是否有被其它Application标签所关联,如果仅仅是提供当前的Application使用,那么将会彻底被移除,相反则不做任何操作。
用户与Application的交互行为大部分都是通过GUI来完成,在Android平台可以有两种方式定义GUI,其中可以利用XML来预置静态的GUI元素,或者在Activity类的内部动态定义GUI元素。
这两种不同的方法都是由Activity作为驱动和响应用户交互事件的主体。
当启动Application之后,至少需要一个包含有GUI信息的Activity实例被创建。
Activity的主体包括两个主要部分,其中一个是Content(data),另外一个是响应用户交互事件的行为。
列举一个Dialer例子的截图,其中包括四个部分:
Dialer主界面、通讯录、查看联系人信息和添加新联系人。
下面列举了更多比较有代表性的Applications和其所包含的Activities:
∙Email-activitiestoviewfolders,viewlistofmessages,viewamessage,composeamessage,andsetupanaccount
∙Calendar-activitiestoviewday,viewweek,viewmonth,viewagenda,editanevent,editpreferences,andviewanalert
∙Camera-activitiesforrunningthecamera,viewingthelistofpictures,viewingapicture,croppingapicture,runningthecamcorder,viewingthelistofmovies,andviewingamovie
∙Game-oneactivitytoplaythegame,typicallyanotherforsetup
∙Maps-oneactivitytoviewalocationonamap,asecondforlists(suchasturnlistorfriendlist),andathirdfordetails(friendlocation,status,photo)
Application基本上是由四个模块组成:
Activity、Service、ContentProvider和BroadcastReceiver,其中Activity是实现应用的主体。
ActivityStack
操作应用程序时,有时需要调用多个Activities来完成需求,例如:
发送邮件程序,首先是进入邮件主界面,然后启动一个新的Activity用于填写新邮件内容,同时可以调出联系人列表用于插入收件人信息等等。
在这个操作过程中Android平台有一个专门用于管理Activities堆栈的机制,其可以方便的线性记录Activities实例,当完成某个操作时,可以通过这个导航功能返回之前的Activity(通过按操作台的“Back”)。
每次启动新的Activity都将被添加到ActivityStack。
用户可以方便的返回上一个Activity直到HomeScreen,到达HomeScreen后,将无法再继续查看堆栈记录(俗话说:
到头了-A)。
如果当前Task被中止(Interruptingthetask),返回到系统主界面后启动了其它操作,当希望返回到前一个Task继续执行时,只需要再次通过主界面的Applicationlauncher或者快捷方式启动这个Task的RootActivity便可返回其中止时的状态继续执行。
相对于Views、Windows、Menus和Dialogs而言,Activity是唯一可被记录在Historystack中的数据,所以当你所设计的应用程序需要用户由A界面进入到次一级界面B,当完成操作后需要再次返回A,那么必须考虑将A看作为Activity,否则将无法从历史堆栈中返回。
Tasks
在Android平台上可以将Task简单的理解为由多个Activities共同协作完成某一项应用,而不管Activities具体属于哪个Application。
通过下边的图示可以更清晰的理解Applications、Tasks、Activities三者之间的关系
(A提供):
Activities可以被看作为是独立存在于系统资源中,而且是作为实现具体应用的主体,Task将一些Activity关联起来实现一个更复杂的应用,单独或者多个Tasks可以被定义为一个Application。
通常实现一个Task都会存在一个RootActivity,但并不是所有情况都如此,通过Applicationlauncher、Homescreen的快捷方式或者由“RecentTasks”(长时间按住Home键)最近使用过的Task记录中启动。
当从一个Activity中启动另外一个Activity时,Back键将作用于返回前一个Activity,与此同时新开启的Activity将被添加到ActivityStack中。
这里有两个被表示为Task的例子:
∙发送带有附件的邮件
∙查看YouTube视频,并且通过Email的方式共享给其他联系人。
-
InterruptingtheTask
这是Task一个非常重要的特性,用户可以实时中止当前为完成的Task,新开启一个不同的Task,当新Task完成操作后,依然可以返回当上一次中止的Task继续完成余下操作。
这个特性大大方便了同时运行多个Tasks,并且可以方便的在他们之间切换。
这里有两种方式可以从当前Task跳转为其它Task(应用这两种方式切换Task,都允许返回到Task最初中止前的状态)。
∙系统抛出一个Notification,当前Task会被终止,跳转为Notification的Task。
∙用户强制中止
当然,除了这两种方式以外,还有另外一个特殊情况,算作为第三种方式来启动一个新的Task:
Activity本身被定义为一个Task。
例如:
Maps和Browser就是属于第三种情况的Application,通过邮件中的一个地址来启动MapsActivity作为一个新的Task,或者通过邮件中的链接启动Browser来启动一个新的Task。
当处在这种情况下,Back按键被触发后,将返回到上一个Task(邮件),因为这些新的Tasks并不是通过HomeScreen中的Applicationlauncher或者快捷方式来启动。
了解Activities和Tasks的基本原理
请大家一定首先理解之前所提及的内容,如果对某些概念依然含混不清,请及时查阅更多资料(官方文档是最好的学习资料),否则无法快速理解接下来将要讲述的例子,甚至丧失阅读兴趣。
接下来,将通过一些有代表性的实例了解关于Applications、Activities、Activitiesstack、Tasks和Intent等一些模块的最基本原理。
从各个角度分析系统对于用户在不同模式下操作的反应原理。
从Home启动一个Activity
绝大部分的Application都由此启动(也有一些Application是通过其它Application启动)。
具体的方式有两种,其一是从系统的ApplicationLauncher启动,另一种是直接由HomeScreen的快捷方式。
启动Application后,RootActivity会显示在当前窗口,并可直接供用户操作界面元素。
官方给出了一个有关这个过程的图示,其实我感觉这个描述的还不够直观,凑合着用吧。
大体的过程是由Home下启动EmailApplication,在这个应用程序中可以直接提供给用户操作的是ListMessagesActivity,HomeActivity切换为后台运行。
应用Back或Home键离开当前Activity的区别
应用Back或者Home都可以离开当前Activity(基于Application的RootActivity),Homeactivity重新切换到foreground,然而二者最根本的区别在于用户是否还需要保留当前Activity的state。
-Back:
将会终止(Destroy)当前正在运行的Activity,返回到之前的Activity(如果是RootActivity,那么将会直接返回到HomeActivity)。
官
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 Activity Task 设计 思路 方法
![提示](https://static.bdocx.com/images/bang_tan.gif)