`
yangwei0915
  • 浏览: 465258 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

android两种启动Service方式的区别

阅读更多

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

1 通过startService

  Service会经历 onCreate -> onStart
 stopService的时候直接onDestroy
  如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。下次调用者再起来可以stopService。

2 通过bindService

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

  调用者退出了,Srevice就会调用onUnbind->onDestroyed所谓绑定在一起就共存亡了。并且这种方式还可以使得 

调用方(例如)调用服务上的其他的方法。

 

分享到:
评论
1 楼 jackemark 2011-10-01  
什么叫 调用方(例如)调用服务上的其他的方法。大哥

相关推荐

    android service的2种启动方式

    虽然标题提到的是两种启动方式,但值得一提的是,除了启动Service,还可以使用绑定(Bind)的方式来与Service交互。绑定服务允许Activity和Service之间建立连接,提供更高级别的交互,如交换数据、控制Service的生命...

    appWidget启动Service

    5. **与Service通信**: 有两种主要方式与Service通信: - ** Binder: 如果Service需要与AppWidget或其他组件进行复杂交互,可以实现`Binder`接口,并在Service中提供。这样,其他组件可以通过`bindService()`方法...

    Android系统在新进程中启动自定义服务过程(startService)的原理

    Service 可以被分为两种:Foreground Service 和 Background Service。Foreground Service 是可以在前台运行的服务,它可以显示一个 Notification,通知用户当前正在执行的任务。Background Service 则是不能在前台...

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

    Service的`startService()`和`bindService()`两种启动方式在使用上有所区别: - `startService()`适合用于启动一个独立的任务,服务在后台持续运行,与启动它的组件没有直接关联,且不会因为组件的销毁而停止。 - `...

    android学习之Service启动1

    首先,Service有两种启动模式:startService()和bindService()。`startService()`主要用于启动一个无需与调用者直接交互的服务,服务一旦启动就会在后台持续运行,直到服务自行停止或系统因资源限制而杀死服务。`...

    浅谈android性能优化之启动过程(冷启动和热启动)

    Android 应用程序的启动方式可以分为两种:冷启动和热启动。 1. 冷启动:当启动应用程序时,后台没有该应用程序的进程,这时系统会重新创建一个新的进程分配给该应用程序,这个启动方式就是冷启动。在冷启动中,...

    android service 简单实例源代码

    Service主要分为两种类型:标准Service和IntentService。标准Service在主线程中运行,开发者需要自行管理线程;IntentService则会自动在工作线程中处理任务,任务完成后自动停止,适合执行一次性任务。 在创建...

    Service的生命周期、两种启动方法的区别

    Service的生命周期、两种启动方法的区别 一、A started service onCreate, onStartCommand, onBind 和 onDestroy。这几个方法都是回调方法,都是由Android操作系统在合适的时机调用的,并且需要注意的是这几个回调...

    android-Service的2种应用

    了解了这两种启动Service的方式后,开发者可以根据实际需求选择合适的方法。`startService`适用于后台运行且不需要与启动它的组件保持连接的任务,而`bindService`则适用于需要实时交互的场景。在使用Service时,...

    Android 多个service的action 相同冲突 验证demo

    - 可能存在的Activity或其它组件,它们如何启动Service并传递Intent。 通过分析这个示例,你可以深入理解ACTION冲突的问题,以及如何在实际开发中解决此类问题。记住,良好的服务管理不仅能够优化应用程序的性能,...

    Android之Service实现比较大小

    这两种启动模式对Service的行为有着显著的影响。 1. **START_STICKY**: 当Service被系统因资源不足而杀死时,如果设置了`START_STICKY`,系统会在资源可用时重新启动Service,但不会重新调用`onCreate()`方法,...

    Android Service的启动过程分析

    Service有两种运行状态:启动状态(Started State)和绑定状态(Bound State)。在启动状态下,Service通过调用`Context.startService()`启动,并且可以在后台持续运行,即使没有与任何Activity交互。在绑定状态下,...

    Android混合方式开启服务

    混合方式开启服务是指结合了显式启动和隐式启动两种方式来启动Android服务,这样可以实现更灵活的控制和服务调用。接下来,我们将详细讨论Android服务的基本概念、显式与隐式启动的区别以及如何混合方式开启服务。 ...

    Android-Service与Activity传值

    2. **启动Service** 在`Activity`中启动`Service`,通常使用`startService()`方法,需要传入一个`Intent`对象,`Intent`中可以携带数据。例如: ```java Intent intent = new Intent(this, MyService.class); //...

    Android---Service Timer之执行周期任务

    在Android中,如果我们想要使用Service来执行周期性任务,通常有两种方式: 1. **IntentService结合AlarmManager**:IntentService是一个单线程的Service,它自动管理请求的队列并顺序处理。配合AlarmManager,可以...

    Service的三种交互方式源码

    Service的三种交互方式主要包括:通过Intent启动(startService)、绑定(bindService)以及混合使用这两种方法。下面我们将深入探讨这三种交互方式的源码实现及其应用场景。 一、启动Service(startService) ...

    Android 四大组件之Service的Demo

    Service的启动有两种方式:startService()和bindService()。 1. startService():这种方式启动的Service会在后台持续运行,直到服务被显式停止(调用stopSelf()或stopService())。服务一旦启动,就会依次执行...

    Android停止Service的例程

    Service的启动有两种方式:startService()和bindService()。startService()用于启动一个Service并执行onStartCommand()方法,而bindService()则是连接到Service,调用onBind()方法,通常用于交互式通信。 1. **停止...

    Android Service之start实现

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

    android 手机开机启动服务DEMO

    为了实现开机启动服务,BroadcastReceiver需要在`onReceive()`方法中启动Service。这通常通过调用`startService()`方法完成,传入Service的Intent来启动服务。Service启动后,会在后台执行其`onStartCommand()`方法...

Global site tag (gtag.js) - Google Analytics