[Android]知识总结一:Service

1. Service作为Android的常用组件之一用途还是非常广的,常被用来表示后台服务,没有与用户进行交互。比如我们熟悉的音乐播放器服务,或者后端下载的服务;

  我们知道Service的启动方式有:

  a. startService

  b. bindService

2. 说一下service的生命周期,有如下的回调

onCreate, onStartCommand(onStart已经废弃),onBind, onUbind, onDestory

说一下startService和bindService的关系和区别;

  a. service作为组件,一定是需要在AndroidManifest.xml中进行注册的。

  b. 通过context.startService来启动的service,会在第一次调用时回调onCreate,并且该service将会在后台运行,只有在显示调用stopService或者在service中调用stopself方法才能停止service。若调用startService多次,onCreate只有在第一次实例service时会被触发,其他的调用会触发onStartCommand回调。

  c. 通过context.bindService来连接service来启动,那么此service将于context进行绑定,除非显示调用context.unbindService或者bind service的那个context已经不存在了,service才会被停止。

  d. startService启动的service,可以执行多次stopService, 而bindService启动的service,可以调用多次的bindService,但是只有第一次bind时,才会回调onCreate, onBind; 而且bind的service,只能调用一次unbindService来解绑,调用多次,会产生运行时异常。

3.  分析一下Service的属性标签

Android:name 描述service的名称;

Android:enable: 这个属性用于指示该服务是否能够被实例化。如果设置为true,则能够被实例化,否则不能被实例化。默认值是true。<application>元素有它自己的enabled属性,它的这个属性适用于应用中所有的组件,包括service组件。对于被启用的服务,<application>和<service>元素的enabled属性都必须是true(默认值都是true)。如果有一个元素的enabled属性被设置为false,该服务就会被禁用,而不能被实例化。

Android:exported: 这个属性用于指示该服务是否能够被其他应用程序组件调用或跟它交互。如果设置为true,则能够被调用或交互,否则不能。设置为false时,只有同一个应用程序的组件或带有相同用户ID的应用程序才能启动或绑定该服务。

1.3   bindservice的serviceConnection说明;

在调用bindService时,要传递一个类型为serviceConnection的参数,该接口类有两个接口方法如下:

         public void onServiceConnected(ComponentName name, IBinder service);

当连接service的已经建立,会回调此方法;

Name: 连接的service的componentName;

    Service: Ibinder,在连接时,回调onbind返回的ibinder;

public void onServiceDisconnected (ComponentName name);

调用时机:当service因为进程被杀掉;

时间: 2024-10-02 08:12:04

[Android]知识总结一:Service的相关文章

Android开发6:Service的使用(简单音乐播放器的实现)

前言 啦啦啦~各位好久不见啦~博主最近比较忙,而且最近一次实验也是刚刚结束~ 好了不废话了,直接进入我们这次的内容~ 在这篇博文里我们将学习Service(服务)的相关知识,学会使用 Service 进行后台工作, 学会使用 Service 与 Activity 进行通信,并在此知识基础上学会使用 MediaPlayer和简单的多线程编程.使用 Handle 更新 UI,并设计成功一个简单的音乐播放器. 是不是很高大上呢~一起来学习~ 基础知识 Service作为Android四大组件之一,在每

Android查缺补漏--Service和IntentService

Service的运行不依赖界面,即使程序被切换到后台,Service仍然能够保持正常运行.当某个应用程序进程被杀掉时,所有依赖于该进程的Service也会停止运行. Service 分为启动状态和绑定状态.当处于仅启动状态时,通过 stopService或 stopSelf 即可停止 Service.当处于绑定状态时需要通过 unBindService 和 stopService 结合使用才能完全停止 Service. 一.Service的生命周期(onCreate()-onStartComma

Android笔记二十七.Service组件入门(一).什么是Service?

转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.Service 1.Service简介 Service为Android四大组件之一,Service与Activity组件相似,都代表可执行的程序且有自己的生命周期,唯一的区别是Activity组件提供界面方便人机交互而Service只在后台运行且没有交互界面.Service是android 系统中的一种组件,它们都是从Context派生出来的,但是它不能自己运行,只能在后台运行,并且可以和其

Android -- 利用Broadcast开启Service

Broadcast和Service都是Android四大组建之一的. 这里的广播是动态的,自己注册的一个广播. 这种最典型的用法就是利用开机广播,然后再起自己的服务,也就是在Android手机中做到开启启动. Service与Broadcast                                                                 public class MyService extends Service { private MyReceiver rec

Android笔记之 Web Service 基础

一.Web Service是什么? 就是网络服务,根据W3C的定义,WebServices(Web服务)是一个用于支持网络间不同机器互操作的软件系统,它是一种自包含.自描述和模块化的应用程序,它可以在网络中被描述.发布和调用,可以将它看作是基于网络的.分布式的模块化组件.  Web Services是建立在通用协议的基础之上的,包括HTTP.SOAP.UDDI.WSDL等.其中Web Service三要素就是SOAP.WSDL和UDDI. SOAP用来描述传递信息的格式, WSDL用来描述如何访

android开发之MediaPlayer+Service MP3播放器

http://blog.csdn.net/zzy916853616/article/details/6450753 [java] view plaincopy import java.io.File; import java.io.FilenameFilter; import java.util.ArrayList; import java.util.List; import android.app.ListActivity; import android.apps.service.Player

[Android学习系列19]Service的一些事

参考: Android Service 详解一:概述 Android Service 详解二:创建一个service Android Service 详解三:从类Service派生service Android Service 详解四:开始停止service[Android学习系列19]Service的一些事,码迷,mamicode.com

Android Binder进程间通信---注册Service组件---发送和处理BC_REPLY返回协议

本文参考<Android系统源代码情景分析>,作者罗升阳 一.测试代码: -/Android/external/binder/server ----FregServer.cpp ~/Android/external/binder/common ----IFregService.cpp ----IFregService.h ~/Android/external/binder/client ----FregClient.cpp Binder库(libbinder)代码: ~/Android/fra

Android知识杂记

1.Toast.makeTest(contest,test,duration); contest:上下文,一般为当前窗口,this test:提示框内容,字符串型 duration:时常,值为1或0,1为显示2s,0为1s Android知识杂记,码迷,mamicode.com