美文网首页
Service相关

Service相关

作者: Infinity_空 | 来源:发表于2021-12-26 16:38 被阅读0次
  1. 启动Service的方法有哪些?它们的区别在哪?有哪些使用场景?

    • 生命周期:
      • startService:onCreate->onStartCommand->onDestory,如果没有执行stopService,Service会一直在后台运行。
      • bindService:onCreate->onBind-onUnbind->onDestory,执行bindService之后,service会和client绑定在一起,如果client销毁了,那么对应的service也会被停止。但是在client销毁时需要主动调用unbindService,否则会出现内存泄漏。
      • 多次调用startService,service只会被创建一次,onCreate只会回调一次,但是onStartCommand每次都会被调用。
      • 多次调用bindService,onCreate和onBind都只会回调一次,不会被多次创建和绑定。
    • 交互:
      • startService跟调用者不能进行交互,是独立且长期存在的
      • bindService跟调用者绑定,可以与调用者进行交互,与调用者的生命周期绑定
    • 使用场景:
      • 需要下载一个大文件,或者后台播放音乐视频时,activity不需要与service交互,那么就使用startService
      • 如果在音乐或者视频播放过程中,需要获取一些信息,此时可以用过bindService与服务绑定,进行一些交互
  2. 如果一个service既被startService又被bindService会有什么情况?
    不管是startService还是bindService,onCreate只会调用一次,即service只会被创建一次。每调用一次startService,onStartCommand就会被调用一次。此后,如果要关闭service,需要同时调用stopService和unbindService(或者是客户端关闭),否则这个service不会被停止。

  3. Service如何保活

    1. 启动多个service互相拉起
    2. 监听系统广播或者是三方应用广播(微信、支付宝等)进行唤醒
    3. 利用账号同步机制拉活
    4. 提高service的优先级,延长被kill的时间
    5. 利用像素为1的Activity,监听解锁屏和截屏的广播
    6. JobScheduler唤醒Service,Android7.0失效(因为如果没有启动前台服务,则会抛出IllegalStateException)
  4. IntentService:IntentService继承于Service,默认开启一个工作线程,不断接收Intent执行任务,每次只执行一个任务,执行完毕之后,再执行下一个任务,如果之后没有任务了,则自动停止服务。
    因为IntentService单独启动了一个线程,所以即使是耗时任务,也不会阻塞主线程工作,而Service是运行在主线程,可能会出现ANR。

  5. JobIntentService:Android O后,用于方便启动JobService的一个工具类。

相关文章

  • Service相关

    Service基本用法、Service生命周期、service与Activity通信 一、Service基本用法 ...

  • Service相关

    一、Service 简介 Service 是 Android 程序中四大基础组件之一,它和 Activity一样都...

  • Android Service用法知识点的讲解

    Android Service 学习Service相关知识点: android service 的基础知识,生命周...

  • 数据库

    mysql服务相关 sudo service mysql start sudo service mysql sto...

  • Service相关知识

    先从生命周期说起吧: 首先他有三个生命周期,分别是:onCreate(),onStartCommand(),onD...

  • 3 Service相关

    service的应用场景,以及和Thread的区别开启service的两种方式以及区别 1、service是什么?...

  • Android Service相关

    Android 的 Service 是四大组件之一,有着非常重要的地位。下面来记录一些重要的知识点。 常用方法 生...

  • Service相关知识

    一. 简介 Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。Service可由其他应...

  • Service相关知识

    1、Service简单概述 2、Service在清单文件中的声明 3、Service生命周期 4、Service启...

  • 关于Android的Service知识点,你知道吗?

    目录 学习Service相关知识点: 概述; Service生命周期; Service的基本用法; 服务。 问:达...

网友评论

      本文标题:Service相关

      本文链接:https://www.haomeiwen.com/subject/ibsyqrtx.html