为用户服务的Service之基础篇

原创 2012年03月26日 21:54:13


Service与Activity一样,也有一个从启动到销毁的过程,但Service的这个过程比Activity简单得多,Service从启动到销毁的过程只会经历3个阶段:

(1)创建服务;

(2)开始服务

(3)销毁事物

一个服务实际上是一个继承自android.app.Service类,当服务经历上门3个阶段后,会分别调用Service类中的3个事件方法进行交互,这3个事件方法如下:

public void  onCreate();                                                 //创建服务

public void OnStart(Intent intent,int startId);              //开始服务

public void onDestory();                                               //销毁事物

一个服务只会创建一次,销毁一次,但可以开始多次,因此,onCreate和onDestroy方法只会被调用一次,而onStart方法会被调用多次

 

下面编写一个服务类,具体看一下服务的生命周期由开始到销毁的过程。

 

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class MyService extends Service {

	@Override
	public IBinder onBind(Intent arg0) {
		// TODO Auto-generated method stub
		return null;
	}
//当服务第一次创建时调用该方法
	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();
	}
//当服务销毁时调用该方法
	@Override
	public void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
	}
//当开始服务时调用该方法
	@Override
	public void onStart(Intent intent, int startId) {
		// TODO Auto-generated method stub
		super.onStart(intent, startId);
	}

}


接着,在AndroidManifest.xml文件中进行配置。

<service android:enable="true" android:name=".MyService" />

其中android:enable="true"表示MyServie服务处于激活状态,系统不会自动启动该服务,要想启动这个服务,必须显示调用startService方法,反之,停止则显示的调用stopService方法,代码如下:

 

public void onClick(View view)

{

     switch(view.getId())

     {

             case R.id.btnStartService:

                 startService(serviceIntent);

                 break;

              case R.id.btnStopService:

                         stopService(serviceIntent);

                         break;

    }

}

Java语言程序设计(基础篇)原书第十版 课后习题 第五章

import java.util.Scanner; public class Code_Practice_5 { public static void main(String[] args) {...
  • zjjoebloggs
  • zjjoebloggs
  • 2015年10月21日 20:27
  • 9928

Java语言程序设计(基础篇)原书第十版 课后习题 第三章

// 3.11 Scanner input = new Scanner(System.in); System.out.print("Enter a month and a year:");...
  • zjjoebloggs
  • zjjoebloggs
  • 2015年10月06日 21:58
  • 7471

初识OpenCV(基础篇)

OpenCV其实就是一堆C和C++语言的源代码文件,这些源代码文件中实现了许多常用的计算机视觉算法。例如C接口函数cvCanny()实现了Canny边缘提取算法。可以直接将这些源代码添加到我们自己的软...
  • songkai320
  • songkai320
  • 2016年07月13日 17:59
  • 2145

Java语言程序设计基础篇原书第十版第五章综合题答案

循环的综合题。需要其它讲解的话,评论中留下题号。
  • Tanganling
  • Tanganling
  • 2016年11月13日 13:01
  • 3715

java语言程序设计基础篇第十一章编程练习题

1package yongheng; import java.util.Scanner;public class Main { public static void main(String a...
  • gyhguoge01234
  • gyhguoge01234
  • 2016年09月08日 22:19
  • 2221

Python 学习 基础篇

http://chars.tech/2017/04/22/python-basic-knowledge/?utm_source=tuicool&utm_medium=referral ...
  • u011001084
  • u011001084
  • 2017年06月06日 15:39
  • 149

java语言程序设计基础篇第八章编程练习题

1 import java.util.Scanner; public class Main{ public static void main(String[] args){ final int...
  • gyhguoge01234
  • gyhguoge01234
  • 2016年07月10日 19:06
  • 2306

Java语言程序设计基础篇原书第十版第五章编程练习题答案

综合题在另外一个文章中,大家在主页找一下
  • Tanganling
  • Tanganling
  • 2016年11月06日 16:21
  • 6050

【备忘】C++程序设计原理与实践 PDF下载

作者简介: Bjarne Stroustrup,英国剑桥大学计算机科学博士,C++的设计者和*初的实现者。他现在是德州农工大学计算机科学首席教授。1993年,由于在C++领域的重大贡献,他获得了AC...
  • maomi2maomi
  • maomi2maomi
  • 2016年12月01日 22:18
  • 929

《鸟哥的linux私房菜:基础学习篇》第3版 - 核心笔记(全)

一、什么是 Linux 呢?! • Unix 与 Linux 的历史     o Multics 系统:由 Bell(贝尔实验室)、MIT(麻省理工学院)与 GE(美国通     用电器)合作开发的...
  • sinat_36184075
  • sinat_36184075
  • 2017年05月19日 23:50
  • 544
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:为用户服务的Service之基础篇
举报原因:
原因补充:

(最多只允许输入30个字)