`

2011.09.01(3)——— android service startService bindService

阅读更多
2011.09.01(3)——— android service startService bindService

参考:http://blog.csdn.net/huanyufeng/article/details/5873407
http://www.cnblogs.com/allin/archive/2010/05/15/1736458.html

1 通过startService
    使用context.startService() 启动Service是会会经历:
context.startService()  ->onCreate()- >onStart()->Service running
context.stopService() ->onDestroy() ->Service stop


   如果是调用者自己直接退出而没有调用stopService的
   话,Service会一直在后台运行。
   下次调用者再起来可以stopService或者stopSelf来停止service。

  2 通过bindService   
context.bindService()->onCreate()->onBind()->Service running
onUnbind() -> onDestroy() ->Service stop


    这个时候 调用者和TestService绑定在一起

   调用者 退出了,Srevice就会调用停止
   所谓绑定在一起就共存亡了。



在Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory在一个生命周期中只能被调用一次


要是这几个方法交织在一起的话,会出现什么情况呢?

一个原则是Service的onCreate的方法只会被调用一次,就是你无论多少次的startService又 bindService,Service只被创建一次。如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先 是start,那么bind的时候就直接运行onBind方法。如果你先bind上了,就stop不掉了,对啊,就是stopService不好使了,只 能先UnbindService, 再StopService,所以是先start还是先bind行为是有区别的。


09-02 08:19:29.034: INFO/System.out(7713): Test1
09-02 08:19:29.074: INFO/System.out(7713): onCreate
09-02 08:19:29.083: INFO/System.out(7713): onBind
09-02 08:19:29.183: INFO/System.out(7713): service connect
09-02 08:19:42.373: INFO/System.out(7713): Test2
09-02 08:19:42.464: INFO/System.out(7713): service connect


由此可以看出来 一个service可以绑定多个activity,并且ServiceConnection也执行了多次

例子当中 有两个测试

1、MainActivity 测试onStart onBind
2、MainActivity为base 测试是否可以绑定多个activity




分享到:
评论

相关推荐

    Music_Player_Service.rar_ANDROID 播放_Service android_android serv

    在Android开发中,服务(Service)是一个至关重要的组件,它允许应用程序在后台执行长时间运行的操作,而无需与用户界面交互。本项目“Music Player Service”是针对Android平台设计的一个音乐播放器,它深入展示了...

    方式二:Context.bindService()源码

    在Android应用开发中,服务(Service)是一种用于执行长时间运行操作的组件,它不提供用户界面,但可以与其他组件交互。本篇文章将深入探讨`Context.bindService()`方法,它是连接到一个服务的主要途径,让我们详细...

    Android学习之路——7.Service

    本篇文章将深入探讨“Android学习之路——7.Service”,分析Service的基本概念、使用方式以及常见应用场景,同时结合源码解析Service的工作原理,并提供一个实战Demo——Service_Demo。 一、Service基本概念 ...

    Android startService bindService Aidl service基础全

    本文将深入探讨"Android startService, bindService, Aidl service基础全"这一主题,按照学习顺序依次讲解`testService`, `testBindService`, `testIntentService`, `testAidlClient+testAIDL`。 首先,我们来看`...

    音乐播放器bindservice和startService

    本篇文章将详细讲解如何利用`bindService`和`startService`来实现音乐播放功能,这两种服务启动方式在音乐播放器中的应用场景及优缺点。 首先,我们了解`Service`在Android系统中的作用。`Service`是一种后台运行的...

    Android中startService()和bindService()的测试

    实例详解Android中startService()和bindService()的区别。 说明详见http://blog.csdn.net/a343902152/article/details/50857316

    Android Service之start实现

    Service的启动方式主要有两种:`startService()`和`bindService()`。这里我们主要关注`startService()`,它是异步的,适合用于执行一次性或周期性的任务,如播放音乐、定时任务等。一旦Service被启动,即使用户离开...

    Android_SDK_Service.rar_SDK_android_android sdk _android service

    - **startService()**:启动Service并执行一次性任务,即使调用者退出,Service仍然运行。 - **bindService()**:连接到Service并与之交互,通常用于持续提供服务,如网络通信。 **三、线程** 在Android中,主线程...

    安卓Android源码——ServiceSample.rar

    2. **启动和绑定**:Service 可以通过 `startService()` 或 `bindService()` 启动。`startService()` 用于执行一次性任务,而 `bindService()` 用于与服务建立连接并进行数据交换。 二、ServiceSample 示例详解 在...

    Android中bindService基本使用方法概述

    Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindService方法,本文只探讨纯bindService的使用,不涉及任何startService方法调用的情况。如果想了解startService相关的...

    Service-Demo-android.zip_DEMO_android service_android service de

    3. **启动和停止Service**:DEMO可能会展示如何在Activity中启动和停止Service,这通常涉及Intent对象和startService()、stopService()方法。 4. **绑定和解绑Service**:如果需要与Service进行交互,开发者可以...

    Android Service与BroadcastReceiver、bindService示例详解

    Android Service与BroadcastReceiver、bindService示例详解,代码非常详细,详解博客网址:http://blog.csdn.net/sunboy_2050/article/details/7364024

    android_service.rar

    3. onBind()方法:当其他组件(如Activity)需要与Service进行交互时,可以调用bindService()。这时,Service会执行onBind()方法,返回一个IBinder接口,允许客户端和Service之间建立连接并进行通信。一旦所有客户端...

    android service 简单实例源代码

    3. 若要同时启动并绑定Service,可以先`startService()`,然后`bindService()`。 4. 当Service被绑定且有客户端连接时,`onStartCommand()`不会被调用,只在首次启动时调用一次。 5. 应该始终在不再需要Service时...

    Android 开发 Service讲解.docx

    添加代码如下:<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="startService" android:id="@+id/startService"/><Button android:layout_width="wrap_content" ...

    Android 启动 Service(startservice和bindservice) 两种方式的区别

    Service有两种启动方式:`startService()` 和 `bindService()`。这两种方式启动Service各有特点,适用于不同的场景。 1. **startService() 方式启动Service** 当使用`startService()`启动Service时,Service会在...

    startService和bindService

    最近在开发过程中遇到相关问题,在此记录过程及解决思路。

    Android_Service.rar

    3. **启动Service**:通常在Activity中通过`startService()`方法启动Service,传递一个Intent对象,Intent中可以携带启动Service所需的参数。 4. **绑定Service**:如果需要与Service进行交互,可以使用`...

    android service音乐播放例子.rar

    1. Service生命周期:Service有startService()和bindService()两种启动方式。startService()创建Service并执行onStartCommand(),而bindService()则用于与Service建立连接,并调用onBind()方法。 2. 生命周期方法:...

Global site tag (gtag.js) - Google Analytics