|
|
|
|
移动端

创建 UpdaterService Java类

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

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

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

创建 UpdaterService Java类

创建服务的基本过程与创建 Activity或者其他基础构件类似,首先创建一个类,继承Android框架中提供的Service类。

要创建这个新服务,首先需要新建一个Java文件。在src目录中选择你的 Java package,右键选择 New→Class,再输入UpdaterService作为类名。这样就会新建出一个UpdaterService.java文件,作为你的package的一部分。

回忆一下,在31页的“服务”一节有提到过一般服务的生存周期,如图8-1所示。接下来,我们需要覆盖几个主要的生存周期的相关方法。

onCreate()

在服务第一次创建时调用。

onStartCommand()

在服务启动时调用。

在服务结束时调用。

 
图8-1:Service的生存周期

这里可以使用Eclipse的辅助工具,进入Source→Override/Implement Methods,选上这3个方法即可。

本着在每个学习阶段只做最小可用程序的精神,这里只写很少的代码,在每个覆盖方法中记录一些日志。我们服务的shell大致就是例8-3这样的。

例8-3:UpdaterService.java, version 1

  1. package com.marakana.yamba3;  
  2. import android.app.Service;  
  3. import android.content.Intent;  
  4. import android.os.IBinder;  
  5. import android.util.Log;  
  6. public class UpdaterService1 extends Service {  
  7. static final String TAG = "UpdaterService"; //.  
  8. @Override  
  9. public IBinder onBind(Intent intent) { //.  
  10. return null;  
  11. }  
  12. @Override  
  13. public void onCreate() { //.  
  14. super.onCreate();  
  15. Log.d(TAG, "onCreated");  
  16. }  
  17. @Override  
  18. public int onStartCommand(Intent intent, int flags, int startId) { //凘  
  19. super.onStartCommand(intent, flags, startId);  
  20. Log.d(TAG, "onStarted");  
  21. return START_STICKY;  
  22. }  
  23. @Override  
  24. public void onDestroy() { //凙  
  25. super.onDestroy();  
  26. Log.d(TAG, "onDestroyed");  
  27. }  

因为频繁地使用Log.d(),我会在所有主要的类中声明一个TAG常量。

onBind()在绑定服务(bound service)中使用,它会返回一个被称为binder的对象的具体实现。在这里还没有用到绑定服务,因此可以简单地返回null。

onCreate()调用于服务初次创建时,而不一定是startService()调用的结果。可以在这里做些一次性的初始化工作。

onStartCommand()在服务每次收到一个startService()的intent时,都会被调用。对已经启动的服务而言,依然可以多次收到启动的请求,每次都会使得onStartCommand()被执行一遍。

onDestroy()在服务收到stopService()的请求而销毁之前被调用。对应于在onCreate()中被初始化的一些资源,在这里做一些相关的清理工作是很合适的。

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

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

读 书 +更多

黑客入侵的主动防御

本书是一本非常全面地讲述黑客入侵主动防御技术的网络安全工具书。本书的重点是介绍黑客的攻击手段和提供相应的主动防御保护措施,在组织结...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊