|
|
|
|
移动端

Yamba的Application对象

《Learning Android(中文版)》第8章服务,在本章,我们将动手创建一个服务。这个服务的任务是在后台运行的,获取用户在Twitter上最新的时间轴消息,并更新到应用上。本节为大家介绍Yamba的Application对象。

作者:李亚舟/任中龙/杜钢译来源:电子工业出版社|2012-07-27 11:28

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


第8章 服务

服务(service)与活动(activity)一样,同为Android的基本构件。其不同之处在于服务只是应用程序在后台执行的一段代码,而没有用户界面。

服务用来运行那些需要独立于活动处理、与活动状态无关的任务。比如我们的Yamba程序就需要创建一个服务,定时连接到云服务端,检查用户的朋友有没有发布新消息。它会一直处于运行状态,而不管用户是否正在运行某个活动。

同活动一样,服务也有严格定义的生存周期。作为开发者,可以定义其状态转换时发生的行为。活动的状态由运行时环境中的ActivityManager控制,而服务的状态会更多地受intent影响。具体来说,当有个活动需要用到你的服务的时候,它就会发送一个intent来启动这个服务,一个已经在运行的服务也可能意外地重复收到启动消息。你同样可以停止一个服务,这也被称为销毁(destroy)服务。

服务可以是绑定服务(bound service)或者非绑定服务(unbound service)。绑定服务可以提供更多的API,以允许其他应用通过AIDL(Android Interface Definition Language,Andorid接口描述语言,参见第14章)与之进行交互。不过在本章中,我们主要关注的是非绑定服务,这种服务的生存周期与启动它们的活动的生存周期无关,而且只有两种状态:启动(started)或停止(stopped或destoyed)。

在本章,我们将动手创建一个服务。这个服务的任务是在后台运行的,获取用户在Twitter上最新的时间轴消息,并更新到应用上。一开始的时候,这个服务只是把你朋友的时间轴打印到日志文件里。它会在一个独立的线程中执行,因此也会顺便讲解一些关于并行程序设计的相关知识。此外,本章还将提到通过 Toast 向用户提示信息的方法,以及服务和活动所运行的应用程序上下文的相关知识。

到本章结束,你将拥有一个功能完善的应用,可以把消息发到Twitter,还可以定时检查你朋友们的最新消息。

Yamba的Application对象

前面我们已在StatusActivity中实现了首选项界面,还实现了一个辅助方法get-Twitter(),用来帮助我们拿到真正的Twitter对象,用以连接到线上服务。

看起来现在需要在应用的其他地方用到这些功能了,四处复制、粘贴是很糟糕的做法,如果我们能把这些功能代码放在一个单独的地方,让应用的大部分代码都可以访问到,就能解决这个问题。Android提供了一个地方来满足这种需求,那就是Application对象。

Application对象中保存着程序各部分所共享的状态。只要程序中的任何部分在执行,这个对象都会被系统创建并维护。大多数应用直接使用来自框架提供的基类android.app.Application,不过你也可以继承它,实现你自己的实例,以添加一些程序功能。

接下来我们创建自己的Application对象实例,名为YambaApplication。创建YambaApplication类的步骤如下。

1. 创建一个Java类YambaApplication。

2. 在AndroidManifest.xml文件中注册新的类。

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

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

读 书 +更多

SQL应用与开发标准教程

本书主要介绍了SQL的数据库应用和开发技术,内容涉及关系数据库和SQL概述,SQL环境,SQL对于数据表的操作,数据库查询知识,SQL数据的修改...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊