service的简单使用

 Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy

  我们有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。

  1 通过startService

  Service会经历 onCreate --> onStart

  stopService的时候直接onDestroy

  如果是 调用者 直接退出而没有调用stopService的话,Service会一直在后台运行。

  下次调用者再起来仍然可以stopService。

  2 通过bindService

  Service只会运行onCreate, 这个时候 调用者和Service绑定在一起

  调用者退出了,Srevice就会调用onUnbind-->onDestroyed

  所谓绑定在一起就共存亡了。

  注意:Service的onCreate的方法只会被调用一次,

  就是你无论多少次的startService又 bindService,Service只被创建一次。

  如果先是bind了,那么start的时候就直接运行Service的onStart方法,

  如果先是start,那么bind的时候就直接运行onBind方法。如果你先bind上了,就stop不掉了,

  只能先UnbindService, 再StopService,所以是先start还是先bind行为是有区别的。

  Android中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。

  服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。

  这两个方法都可以启动Service,但是它们的使用场合有所不同。使用startService()方法启用服务,调用者与服务之间没有关连,

  即使调用者退出了,服务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。

  如果打算采用Context.startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,

  接着调用onStart()方法。如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,

  但会导致多次调用onStart()方法。采用startService()方法启动的服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。

  如果打算采用Context.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,

  接着调用onBind()方法。这个时候调用者和服务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法,

  接着调用onDestroy()方法。如果调用bindService()方法前服务已经被绑定,

  多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。

  如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()-->onDestroy()方法.

时间: 2024-10-05 04:45:03

service的简单使用的相关文章

Android Bound Service(一) ----- Extending Binder Service(进程内绑定Service的简单例子)

ref:http://developer.android.com/guide/components/bound-services.html? 前言 重新学习这一项技术,主要的原因,是因为以前没有好好的学,那时总觉得作品能动,能完成工作就好了,而这种得过且过的想法,大大地影响了我的技术程度,也因此,在这个这个博客里,有许多的复习心得.有幸得到一位前辈的指导,指出,若只是学习,而无实际应用,这样进步会较少,因此,最好要多看源码,并且自己多尝试多实践,这样学习一万小时,应该能有小进步,因此开始了 Bo

Android Service使用简单介绍

作为一个android初学者,经常对service的使用感到困惑.今天结合Google API 对Service这四大组件之一,进行简单使用说明. 希望对和我一样的初学者有帮助,如有不对的地方,也希望及时指出. Service :就是长时间运行在后台,没有用户界面的一个应用组件.即便,用户切换到其他的应用,Service依然可以在后台运行. 除此之外,一个组件可以将自己和Service进行绑定,甚至是进程间通信.例如,Service可以处理网络请求,播放音乐, 处理I/O操作,和Content

用Axis2实现Web Service(简单的axis实现)

一.开发环境:Tomcat(下载地址:http://tomcat.apache.org/download-60.cgi).MyEclipse(下载地址:http://www.myeclipseide.cn/),Axis2(下载地址:http://axis.apache.org/axis2/java/core/download.cgi). 二.MyEclipse插件:axis2-eclipse-codegen-wizard.zip(下载地址:http://files.cnblogs.com/sky

Service的简单认识

Service是不需要界面的服务,比如http长连接,后台播放音乐 等等 首先新建一个类,extent Service  .(AS中新建目录有Service选项) 1.启动服务 startService(new Intent(MainActivity.this, MyService.class)); 2.停止服务 stopService(new Intent(MainActivity.this, MyService.class)); 3.绑定服务 bindService(intent, Main

Android——用Activity和Service实现简单的音乐播放器

一.只用Activity xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="mat

Service(服务)简单使用

1.Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件.服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响. 2.Service的创建 public class MyService extends Service { private static final String TAG = "MyService"; public MyService() { } @Overri

Service Broadcast简单音乐播放功能

在Activity上有两个ImageButton,分别控制播放/暂停.停止. @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        start = (ImageButton) findViewById(R.id.play);        stop =

Sql Server Report Service 使用简单说明

ReportServices做为报表服务器,结合sql直接访问数据库提供基本的报表格式设置显示,可以快速开发报表,主要包含两部分内容: 1.ReportServices服务器配置搭建,承载报表的运行平台 2.设计报表 ReportServices配置 1.  进入报表服务管理器 2.分配Web服务URL的端口号并应用,注:在设计后部署时要用到即TargetServerURL 3.创建ReportServer数据库并应用(ReportServer数据库是ReportService运行时的基础数据库

使用cxf写web service的简单实例

增加CXF依赖 <dependency> <groupId>org.apache.cxf</groupId> <artifactId>apache-cxf</artifactId> <version>${cxf.version}</version> <type>pom</type> </dependency> 创建服务接口 import javax.jws.WebService; @We