网亚机房管理软件博客

新实用主义典范

实现机房管理软件内容提供器

在创建机房管理软件内容提供器CRUD方法的过程中,有几个结构问题开发人员必须牢记。像往常构件组件一样,其中最重要的是理解组件的生命周期,以及哪些方法运行在哪些线程上。

内容提供器的onCreateO方法总是在它所属的应用程序的UI线程上运行。这意味着,它不得承担任何费时的初始化操作。幸运的是,框架保证了创建SQLiteDatabaseHeper对象是一个快速的操作—onCreateO方法可以创建帮助器的实例。

但是,不能使用该实例来获得一个数据库实例。如前所述,获得实际的数据库实例可能需要重建数据库的整个架构,并用数据重新填充它。在UI线程上运行这一操作过于缓慢。

机房管理内容解析器:客户和提供器之间的联系

就示例来看,内容提供器完全用在游标加载器的幕后。所有细节都隐藏在其实现中。在机房管理应用程序中添加一个新功能,将有助于揭示其中的一些细节。数据插入这个新功能的实现类似于之前展示的查询的实现。这又向内容提供器更近了一步,并且在这个示例中需要编写在加载器中隐藏的代码。

在UI中为应用程序添加一对文本字段和一个按钮,当单击按钮时,把一对文本字段中的内容作为新的键/值对插入数据库中。

新功能使用添加到视图的新按钮,将插入的新键/值对提交到数据库中。按钮的onClickO方法中的代码(未列出)创建AsyncInsert任务的一个新实例,并执行它。与查询的示例不同的是,这个简单的插入是触发后自动执行的。与加载器不同,插入任务不返回结果,并在完成后不需要方法来通知任何人。

创建机房软件数据库:SQLLiteOpenHelper类

一个典型的Web服务中,创建机房软件数据库可能是明确的、不频繁的和工作量的任务。设计、优化、维护和更新数据库引擎可能是非常专业的工作。一个组织可能设置会雇用与它的技术人员完全分开的数据库管理员来做这样的工作。不管是谁做的工作,创建数据库显然是应用程序安装的一部分,而不是执行应用程序的一部分。

在移动应用程序安装的一部分,情况就不同了。当用户安装一个新的应用程序时,该应用程序将必须创建自我。应用程序Bundle就是一切。如果数据库是必要的,应用程序将必须创建它。SQLiteOPen类是Android解决这种边缘特殊环境的工具。

构建user机房管理服务

将扩展该功能,允许每个用户指定他希望追踪的感兴趣的股票列表。特别是,user机房管理服务将公开一个股票代号的数组,stockPrices服务将使用它了解应该向Yahoo Finance API申请哪种股票的价格。不用创建机房管理服务器组件用于存储和加载当前登录的用户,因为设置服务器和数据库将为这个样例增加大量的复杂性,从而淡化它作为教学样例的作用。因此,user服务上的save和load函数都是存根,但是如果有真正的服务存在的话,设计模式是相同。

该服务使用了factory函数,默认用户正在监视Google和Yahoo的股票价格。当user服务被创建时,它将自动从服务器加载当前那登录的用户。在本例中,这个操作是一个存根,但是将它转换成服务器调用是非常直观的。只有一个控制器与该服务直接交互。允许用户向他的监视列表添加新的股票的控制器。

«1»

Powered By Z-Blog 2.0 Doomsday Build 121221

版权所有©2007-2013 南京网亚计算机有限公司
QQ:502800066(购买咨询) 1074187861(技术支持) 邮件: sales@ji-fang.cn
电话:( 025)84533318 (025)84533319 (025)66671103 13913982176 传真: (025)84533320
地址: 江苏省南京市中山东路198号龙台国际大厦1205室