|
|
51CTO旗下网站
|
|
移动端

2.2.2 每次只做一件事

《MIT App Inventor完全上手--不会编程也能"乐高式"构建Android应用的编程神器》本书指导读者一步步地完成每个任务和功能,展示了如何通过拖曳、放置和连接拼图块--而非编写代码--来创建应用。在学习过程中,读者还将掌握专业的设计和开发技术,如果今后确实想要编写代码,那么也会用到这些技术。本节为大家介绍每次只做一件事。

作者:靳晓辉 译来源:清华大学出版社|2015-07-30 20:21

2.2.2  每次只做一件事

现代的智能手机应用同时执行着大量任务--至少看上去是这样。包括智能手机在内的所有计算机都很擅长在不同的任务之间迅速切换,使得它们看上去好像同时在做两件不相关的事情。

许多计算机有多个核或处理单元。这些计算机的确可以同时做不止一件事情,因为每个核都能处理一个单独的任务。但这些核也在系统和用户试图完成的许多任务之间迅速地切换着。你的计算机或手机上可能有两个、4个甚至更多个独立的核,但在操作系统和App之间,处理器有成百上千个小任务需要处理。

你将要在App Inventor中完成的大多数事情都是单任务的,这意味着每次只有一个任务在实际运行。不过,它们会很快地执行完并为运行其他任务让路。在代码块中,同一时刻只有一个事件处理程序可以运行。因此,当某个事件发生且相应事件处理程序开始执行放入其中的块时,所有其他事件处理程序必须等待,直到其完成。

在某个处理器正在运行时所发生的事件将会进入一个队列,并且将会在轮到它们的时候运行。大多数事件处理程序运行的速度都比事件产生的速度快得多,因此这通常不会成为问题。大多数常见的动作,例如更新标签上的文本或者检查复选框的状态,几乎是瞬间完成的。然而,其他一些动作,例如处理一个庞大的数据集合,可能要花费较长时间,而直到处理完之前,App将会表现为冻结状态。

在事件处理程序运行时,界面显示不会更新。同样,多数时候这并不是问题,但如果事件处理程序需要花费的时间已经多到足可以让用户感知到,那么界面显示将表现为冻结状态,直到事件处理程序执行完成。

你可能注意到App Inventor中的某些特性比较耗时,例如播放声音或音乐。其他一些特性需要等待Internet上某些站点的响应,这会导致无法预测的时间延迟。但是,当你播放音乐时界面显示并不会冻结,等待网页加载时App也能够继续工作。Android提供了一些机制,允许某些任务(例如播放音乐)在后台运行,且不妨碍App需要执行的常规动作。Android还提供了其他机制来处理会消耗大量时间或者可能永远无法完成的动作(例如,加载网页或者等待用户拍摄照片),而且并不影响App的正常功能。音乐和声音动作的处理由Android系统来保证。你的App只需要向手机操作系统提供声音文件并告知手机来处理它。音乐会在App继续工作的同时进行播放。

在后面的内容中,我们会提供关于App Inventor如何切换任务的更多细节。你可以利用这些知识来构建更棒的App。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

高质量程序设计指南:C++/C语言(第3版)

本书以轻松幽默的笔调向读者论述了高质量软件开发方法与C++/C编程规范。它是作者多年从事软件开发工作的经验总结。本书共17章,第1章到第4...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊