首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    2、Service和Thread 看下官网对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

    74421

    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时,onCreate和onBind方法会被调用,但是多次执行bindService时,onCreate和onBind方法并不会被多次调用,即并不会多次创建服务和绑定服务。

    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方法,不调用onStart和onStartCommand方法。...IntentService是Service的子类,它通过Looper和Thread来解决Service中处理逻辑的阻塞问题。

    48240

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

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

    48310

    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

    87880

    精选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中最核心的服务 , 主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块类似

    2K00

    行情艰难,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

    从Service到WorkManager

    bindService() 生命周期为:onCreate() -> onBind() -> onUnBind() -> onDestory() 其中要注意的是onStartCommand方法的返回值,有三种常量: 1) START_NOT_STICKY...2) START_STICKY,终止服务后,会自动重新服务并调用 onStartCommand(),但不会重新传递最后一个 Intent。...但是,也正是因为后台无感知的特性,也带来了隐私方面的隐患和弊端。 App可以在后台操作用户数据,下载应用无关的文件等等。...后台和前台Service 这就涉及到Service的分类了。 如果从是否无感知来分类,Service可以分为前台和后台。前台Service会通过通知的方式让用户感知到,后台有这么一个玩意在运行。...Google也是考虑到了这一点,所以将5.0之后的JobScheduler和5.0之前的GcmNetworkManager、GcmNetworkManager、AlarmManager等和任务相关的API

    1.5K30

    Android后台保活实践总结:即时通讯应用无法根治的“顽疾”

    前言 Android进程和Service的保活,是困扰Android开发人员的一大顽疾。...因涉及到省电和内存管理策略,各厂商基于自家的理解,在自已ROOM发布时都会对标准Android发行版作或多或少的改动,使得应用层程序在处理进程和Service保活问题上变的异常复杂,且很难兼容,因为说不定哪款手机或者哪个版本的省电策略发生改变...,那么随之而来的就是进程和Service保活的差异。...而就这一看似不起眼的问题,实际处理起来,因为众多Android手机和Android系统版本的差异,让问题的处理充满了不确定性。...其它三台机子(9100没测):默认参数的情况下就会重启服务,return START_STICKY 会重启,return START_NOT_STICKY 不会重启。

    2.3K30
    领券