启动service和绑定service的区别

当我们启动service的时候首先会调用 onCreate();然后调用onStartCommand()方法;再次启动service的时候只会调用onStartCommand()方法;因为只有一个服务!

这时候如果我们返回主界面服务正常运行;

我们绑定service的时候也会调用 onCreate();但是不会调用onStartCommand();

如果绑定了service我们返回主界面的时候服务会直接抛出异常,并且执行ondestory方法();

时间: 2024-12-15 06:46:46

启动service和绑定service的区别的相关文章

普通Service和绑定Service

需要先在Manifest文件中对MyService进行声明: <service android:name=".MyService" android:enabled="true"></service> Service代码: 1 package com.example.dbwater.myapplication; 2 3 import android.content.ComponentName; 4 import android.content.

Android深入四大组件(三)Service的绑定过程

相关文章 Android深入理解四大组件系列 前言 我们可以通过调用Context的startService来启动Service,也可以通过Context的bindService来绑定Service,建议阅读此篇文章前请阅读Android深入四大组件(二)Service的启动过程这篇文章,知识点重叠的部分,本篇文章将不再赘述. 1.ContextImpl到ActivityManageService的调用过程 我们可以用bindService方法来绑定Service,它的实现在ContextWra

跨进程绑定Service

之前讲过Service有远程服务,也就是不同程序之间也可以通过Service联系起来.跨进程的绑定Service可以通过aidl接口实现. 下面运用一个例子程序 提供Service里的方法和数据的程序叫做服务端,获取和运用Service里的方法和数据的程序叫客户端. 先创建两个安卓程序,一个作为服务端,一个作为客户端. 先对服务端进行操作,在服务端创建一个class类,然后在我的电脑的eclipse的项目存储目录下,找到该class并把后缀名改为 .aidl 然后回到开发程序中刷新一下,就会发现

Android 启动后台运行程序(Service)

Android开发中,当需要创建在后台运行的程序的时候,就要使用到Service.Service 可以分为有无限生命和有限生命两种.特别需要注意的是Service跟Activities是不同的(简单来说可以理解为后台与前台的区别),例如,如果需要使用Service的话,需要调用startService(),从而利用startService()去调用Service中的OnCreate()和onStart()方法来启动一个后台的Service.      启动一个Service的过程如下:conte

Android Service的绑定过程

通常我们使用Service都要和它通信,当想要与Service通信的时候,那么Service要处于绑定状态的.然后客户端可以拿到一个Binder与服务端进行通信,这个过程是很自然的. 那你真的了解过Service的绑定过程吗?为什么可以是Binder和Service通信? 同样的先看一张图大致了解一下,灰色背景框起来的是同一个类的方法,如下: 我们知道调用Context的bindService方法即可绑定一个Service,而ContextImpl是Context的实现类.那接下来就从源码的角度

android Activity绑定Service

activity可以绑定Service,并且可以调用Service中定义的方法 Service代码:在里面多了一个IBinder;个人理解是用来与Activity绑定的主要通道: public class MainServer extends Service { private final String TAG = "Service------->"; private final IBinder binder = new MyBinder(); //绑定器 public clas

Android基础知识_绑定Service

一.绑定Service的示例 启动服务可以使用startService这种方式启动,同时启动服务我们还可以使用绑定服务的方式来进行启动.如何绑定呢?请阅读以下代码. 示例工程LearnService?MyService.java的代码如下: package com.example.learnservice; import android.app.Service; import android.content.Intent; import android.os.Binder; import and

Service之“绑定”

Service类中和Service绑定有关的回调函数有2个: 1.IBinder onBind(Intent intent); 该方法的返回值会传递给android.content.ServiceConnection.onServiceConnected(ComponentName name, IBinder service),如果该方法返回值为null,则该Service不能被绑定. 2.boolean onUnbind(Intent intent); 在client中可调用的和Service

【起航计划 034】2015 起航计划 Android APIDemo的魔鬼步伐 33 App-&gt;Service-&gt;Local Service Binding 绑定服务 ServiceConnection Binder

本例和下列Local Service Controller 的Activity代码都定义在LocalServiceActivities.Java 中,作为LocalServiceActivities 内部类实现的. 调用的Service为LocalService. LocalService既可以做为“Started” Service,也可以做为”Bound” Service. 一个“Bound” Service 可以通过Client/Service模式提供Service.它运行应用程序组件(比如