首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

START_STICKY和START_NOT_STICKY

是Android中Service的启动模式。

START_STICKY是一种启动模式,表示当Service因为某种原因被系统销毁后,系统会尝试重新创建该Service,并且会重新调用onStartCommand()方法,但不会传递之前的Intent。这种启动模式适用于需要在后台一直运行的Service,比如音乐播放器。在重新创建Service后,可以通过onStartCommand()方法中的参数Intent获取最新的操作指令。

推荐的腾讯云相关产品:无

START_NOT_STICKY是另一种启动模式,表示当Service因为某种原因被系统销毁后,系统不会尝试重新创建该Service,除非有新的Intent到达。这种启动模式适用于执行一次性任务的Service,比如下载文件。在Service完成任务后,可以通过调用stopSelf()方法主动停止Service。

推荐的腾讯云相关产品:无

总结:

  • START_STICKY和START_NOT_STICKY是Android中Service的启动模式。
  • START_STICKY表示当Service被系统销毁后会尝试重新创建,适用于需要在后台一直运行的Service。
  • START_NOT_STICKY表示当Service被系统销毁后不会尝试重新创建,适用于执行一次性任务的Service。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android高频面试专题 - 基础篇(三)Service

    2、ServiceThread 看下官网对Service的介绍:服务是可以在后台执行长时间运行的操作的应用程序组件,并且不提供用户界面。...6、onStartCommand()返回值的含义 START_STICKY=1:如果 service 进程被 kill 掉,保留 service 的状态为开始状态,但不保留递送的 intent 对象。...START_NOT_STICKY=2:“非粘性的”。使用这个返回值时,如果在执行完 onStartCommand 后,服务被异常 kill 掉,系统不会自动重启该服务。...START_STICKY_COMPATIBILITY=0: START_STICKY 的兼容版本,但不保证服务被 kill 后一定能重启。...设置为前台广播,也是最有效的,之前灰色保活方案使用过 设置优先级,清单文件中intent-filter可以通过android:priority = “1000”设置优先级 onStartCommand方法,返回START_STICKY

    73121

    Service基础

    方法: 1、START_STICKY 2、START_NOT_STICKY or START_REDELIVER_INTENT 这里主要解释这三个变量的意义: 1、 START_STICKY...2、 START_NOT_STICKY 在运行onStartCommand后service进程被kill后,并且没有新的intent传递给它。...如果返回START_NOT_STICKY,表示当Service运行的进程被Android系统强制杀掉之后,不会重新创建该Service,当然如果在其被杀掉之后一段时间又调用了startService,那么该...如果我们某个Service执行的工作被中断几次无关紧要或者对Android内存紧张的情况下需要被杀掉且不会立即重新创建这种行为也可接受,那么我们便可将 onStartCommand的返回值设置为START_NOT_STICKY...第一次执行bindService时,onCreateonBind方法会被调用,但是多次执行bindService时,onCreateonBind方法并不会被多次调用,即并不会多次创建服务绑定服务。

    1.9K70

    Android开发笔记(四十一)Service的生命周期

    该函数返回值为整型,一般取值START_STICKY,具体说明如下: 1、START_STICKY:粘性的服务。如果服务进程被杀掉,保留服务的状态为开始状态,但不保留传送的Intent对象。...2、START_NOT_STICKY:非粘性的服务。使用这个返回值时,如果服务被异常杀掉,系统不会自动重启该服务。 3、START_REDELIVER_INTENT:重传Intent的服务。...4、START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被杀掉后一定能重启。...2、绑定服务时,只调用onBind方法或者onRebind方法,不调用onStartonStartCommand方法。...IntentService是Service的子类,它通过LooperThread来解决Service中处理逻辑的阻塞问题。

    46840

    android IPC 通信(上)-sharedUserId&&Messenger「建议收藏」

    ,由于内容较多,这部分会分上中下三篇博客来仔细分析讲解,第一篇上篇要讲解的是sharedUserIdMessenger的使用方式。...START_FLAG_RETRY表示服务之前被设为START_STICKY,则会被传入这个标记。   ...onStartCommand (Intent intent, int flags, int startId)函数返回值有四个 START_STICKYSTART_NOT_STICKY、 START_REDELIVER_INTENT...、 START_STICKY_COMPATIBILITY START_STICKY如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。...START_NOT_STICKY“非粘性的”,使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务 START_REDELIVER_INTENT重传

    46910

    Android中Services简析

    我们要执行操作可在onStartCommand方法中定义,onStartCommand有4种返回值:  START_STICKY:如果service进程被kill掉,保留service的状态为开始状态...START_NOT_STICKY:“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。...START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被kill后一定能重启。...(例如一个Service需要连接服务器的操作),一般使用bindService来绑定到一个现有的Service(即通过StartService启动的服务),Activity 与 Service传递数据调用接口...在后台的工作的Service通过Context.startService()启动某个特定音乐播放,但在播放过程中如果用户需要暂停音乐播放,则需要通过Context.bindService()获取服务链接Service

    87080

    精选Android中高级高频面试题:四大组件及Fragment原理

    参考回答: onStartCommand方式中,返回START_STICKY或则START_REDELIVER_INTENT START_STICKY:如果返回START_STICKY,表示Service...运行的进程被Android系统强制杀掉之后,Android系统会将该Service依然设置为started状态(即运行状态),但是不再保存onStartCommand方法传入的intent对象 START_NOT_STICKY...:如果返回START_NOT_STICKY,表示当Service运行的进程被Android系统强制杀掉之后,不会重新创建该Service START_REDELIVER_INTENT:如果返回START_REDELIVER_INTENT...,其返回情况与START_STICKY类似,但不同的是系统会保留最后一次传入onStartCommand方法中的Intent再次保留下来并再次传入到重新创建后的Service的onStartCommand...发挥什么作用 参考回答: ActivityManagerService是Android中最核心的服务 , 主要负责系统中四大组件的启动、切换、调度及应用进程的管理调度等工作,其职责与操作系统中的进程管理调度模块类似

    1.9K00

    行情艰难,Android初中级面试题助你逆风翻盘,每题都有详细答案

    1.onStartCommand方式中,返回START_STICKY或则START_REDELIVER_INTENT START_STICKY:如果返回START_STICKY,表示Service运行的进程被...Android系统强制杀掉之后,Android系统会将该Service依然设置为started状态(即运行状态),但是不再保存onStartCommand方法传入的intent对象 START_NOT_STICKY...:如果返回START_NOT_STICKY,表示当Service运行的进程被Android系统强制杀掉之后,不会重新创建该Service START_REDELIVER_INTENT:如果返回START_REDELIVER_INTENT...,其返回情况与START_STICKY类似,但不同的是系统会保留最后一次传入onStartCommand方法中的Intent再次保留下来并再次传入到重新创建后的Service的onStartCommand...ContentProvider作为四大组件之一,其主要负责存储共享数据。

    80120

    Android 进阶4:Service 的一些细节

    请注意: onCreate() 只在创建时调用一次,一旦服务启动后,就不会再调用了 onStartCommand() 必须返回整型数,它用于表示在服务停止时系统如何处理,有以下三个值: START_NOT_STICKY...: 服务终止时不会重建,比较安全 START_STICKY : 服务终止时重建并调用 onStartCommand() ,但传递的 intent 为空,适用于不需要参数的服务 START_REDELIVER_INTENT...: START_STICKY 类似,但会将之前接收到的 intent 传递给重建服务的 onStartCommand() 方法,适用于必须立即恢复的紧急任务 onBind() 返回一个 IBinder...在完成任务后我们需要主动停止服务,停止服务有三个方法: stopService() Context 的方法,外部组件调用,调用后系统会尽快销毁服务 stopSelf() Service 的方法,效果...stopService() 一样 stopSelf(int) Service 的方法,它的特别之处在于参数启动时的 id 一致才会被终止 也就是说如果在终止前又收到新的调用,就不会停止 前台服务

    1.2K80

    浅谈Android中Service的注册方式及使用

    1.Service AndroidManifest.xml 声明 一般而言,从Service的启动方式上,可以将Service分为Started ServiceBound Service。...onCreate(…)、onStartCommand(…)onDestroy()都是Started Service相应生命周期阶段的回调函数。...另外,此函数具有一个int型的返回值,具体的可选值及含义如下: START_NOT_STICKY:当Service因为内存不足而被系统kill后,接下来未来的某个时间内,即使系统内存足够可用,系统也不会尝试重新创建此...START_REDELIVER_INTENT:与START_STICKY唯一不同的是,回调onStartCommand(…)方法时,其中的Intent将是非空,将是最后一次调用startService(...在Bound Service具体使用过程中,根据onBind(Intent intent)方法放回的Binder对象的定义方式不同,又可以将其分为以下三种方式,且每种方式具有不同的特点适用场景: 1)

    2.6K20
    领券