首页 > 编程语言 >安卓Java面试题 171- 180

安卓Java面试题 171- 180

时间:2024-03-15 13:30:46浏览次数:20  
标签:面试题 Service onStartCommand 安卓 180 Intent 杀死 方法 系统资源

171. 简述实现Service不被杀死常驻内存的方式有哪些 ?
(1):如果是安卓自身机制因为系统资源不足的时候杀死你的Service,那么一般情况下会在一段时间之后系统会重启刚刚被杀死的Service那么此 时你该做的事就是怎么恢复Service被杀之前app的一些状态了,那么该怎么恢复呢?这里用到了Service中的onStartCommand方法 的返回值,如果该方法的返回值是START_STICKY的话,在kill该服务之前会保留该Service的状态为开始状态,但不保留Intent对 象,随后系统资源充足的时候进行Service重启时会调用onStartCommand方法,但是此时传入的该方法的Intent参数将为null;如 果设置onStartCommand方法的返回值是START_REDELIVER_INTENT的话,在Service要被系统kill掉之前同样会保 留Service状态为开始状态,同时也会保留Intent对象,随后在系统资源充足的时候仍然会启动该Service,同时会回调 onStartCommand方法,此时会将保留的Intent对象传入到onStartCommand方法中,保证了恢复Service被杀死之前的状 态;
(2):如果Service是被第三方杀毒软件或者清理软件杀死的话,我们可以提升Service的优先级来防止被杀除,具体方法就是使用前台 Service,360就是这么做的,但使用前台Service有个坏处就是一直会有一个通知栏显示在界面上,这种方式比较流氓,但是效果相对来说比较

标签:面试题,Service,onStartCommand,安卓,180,Intent,杀死,方法,系统资源
From: https://blog.csdn.net/u013491829/article/details/136736786

相关文章

  • JVM工作原理与实战(四十三):JVM常见面试题目
    专栏导航JVM工作原理与实战RabbitMQ入门指南从零开始了解大数据目录专栏导航前言一、JVM常见面试题目1.什么是类加载器,有哪些常见的类加载器?2.什么是双亲委派机制,以及如何打破双亲委派机制?3.如何判断堆上的对象没有被引用?4.JVM中都有哪些引用类型?5.ThreadLoca......
  • 【前端面试题】:CSS篇
    1.详细说明CSS3新特性?选择器:CSS3提供了更多类型的选择器,包括属性选择器、伪类选择器、伪元素选择器和多重选择器等,使得开发者能够更精准地定位和操作页面元素。盒模型:CSS3中的盒模型得到了扩展,引入了新的box-sizing属性,使得开发者能够更灵活地控制元素的尺寸和布局......
  • 【Java面试题-基础知识02】Java抽象类和接口六连问?
    1、抽象类和接口分别是什么?抽象类是一种类,可以包含抽象方法和非抽象方法,抽象方法是没有具体实现的方法,需要在子类中被具体实现。接口是一种完全抽象的类,其中的所有方法都是抽象方法,没有方法体,它只是定义了一组方法的契约。2、接口中一定不可以有实现方法吗?不一定,Java8引入......
  • 2024 java面试题(持续更新)
    目录JAVA初级请简述你对MVC模式的理解Spring Bean的生命周期可以分为以下几步:Spring自动装配bean有哪些方式?说一下类的加载过程?在使用HashMap的时候,用String做key有什么好处?HashMap、LinkedHashMap、TreeMap的区别?this与super之间有什么区别?乐观锁和......
  • Java高频面试题---MySQL
    一、InnoDB和MyISAM有什么区别?InnoDB和MyISAM是MySQL中比较常用的两个执行引擎,MySQL在5.5之前版本默认存储引擎是MyISAM,5.5之后版本默认是InnoDB,MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及到安全性较高的应用。它们主要有以下区别:1、InnoDB支持事务,MyISAM不......
  • 【面试题】手写call、apply、bind
    区别相同点:都可以改变函数的this指向第一个参数都是this要指向的对象,如果没有这个参数或参数为undefined或null,则默认指向全局window都可以利用后续参数传参不同点:call可以传入多个参数;apply需要传入一个参数对象(数组或类数组);bind可以分开传参,例如:constfoo=fn.bind(th......
  • Java基础面试题(6)
    76.静态方法和实例方法有何不同?静态方法和实例方法的区别主要体现在两个方面:        在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。        静......
  • Python每日三道经典面试题(九)
    1.解释re模块的split()、sub()、subn()方法?Python的re模块提供了强大的字符串处理能力,主要用于字符串的搜索、匹配、替换和拆分等操作。其中split()、sub()和subn()是re模块中常用的几个方法,用于字符串的拆分和替换。split()方法功能:split()方法用于按照匹配的模式分割......
  • java毕设安卓基于Android的志愿者服务系统(开题+源码)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今信息化社会,移动互联网技术的迅猛发展正深刻改变着人们的生活方式。特别是在社会公益领域,志愿者服务作为社会文明进步的重要标志,其组织与管......
  • 面试题 17.12. BiNodec
    树遍历的变形/***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*convertBiNode(structTreeNode*root){if(!root)returnNULL;if(!roo......