背景

最近自己做的性能搜集apk出现了一些很迷的问题,其实又是机型的兼容问题,就是在性能的service运行期间如果杀掉性能搜集的apk,那么在sumsung的机器上,service会重启,而在国内的厂商定制的odm里面,就不会重启

思考

在运行service期间,如果我们杀掉apk,粗略地应该会经历下面几个过程

杀掉apk

ActivityManager判断到service没有完成

触发重启机制

重启

为什么会杀掉重启,各个厂商的表现不同?

service的onStartCommand返回值的影响

猜测是各个厂商的判断重启机制不同,这个会涉及到ActivityManager的判断机制

步骤

验证问题1:Service的onStartCommand的返回值是不是会影响Service的生命周期?

是会的,而且和OnStartCommand的返回值有关。

三星比较接近原生的android系统,从三星的现象来看,返回值影响如下:

START_STICKY:application被kill掉之后,会重启service,并且重新开始

START_NO_STICKY :没有重新启动起来

START_REDELIVER_INTENT : 这个需要实验一下

验证问题2:这个是不是跟厂商有关?

是和厂商有关的,在接近原生的系统里的预期结果应该是和官网给出的这几个期望值有关的,但是厂商不知道做了什么奇怪的操作导致了这个我们的service没有重启起来。之前在手机厂商工作的时候,他们的rom都是定制过的,需要添加白名单,应用才不会被杀死

问题

其实很多东西为什么网上说了之后但是在国内的那些手机厂商却实验不出效果,应该其中很大一部分原因就是国内的rom都不知道被改烂成什么样了,最好自己弄个android模拟器自己去实验一下。

总结

这个问题的结论就是,app杀掉的预期结果不同的手机厂商是不一样的,因为手机厂商很多东西都是定制过的,真的不做兼容性测试,这个是搞不出来的。所以以后多点在原生的系统去验证官网说的那些东西,然后如果有需要的测试项的话,就需要拿多点国内的手机厂商的手机去实验一下。

三星 自动重启 android,Android 应用被杀掉之后 Service 的重启问题相关推荐

  1. Android Studio自动排版格式化(android排版和xml排版)

    Android Studio自动排版格式化 今天自己想让Android Studio软件自动格式化排版,结果搜了一下,都说是Ctrl + Alt + L 结果不行 后面自已经过网上一些提示和自己探索终 ...

  2. android开关机日志_(android 关机/重启)Android关机/重启流程解析

    --------------------------------Introduction-------------------------- 1. 在PowerManager的API文档中,给出了一个 ...

  3. 三星.android beam,三星S Beam取代Android Beam

    三星S Beam是一种全新的无线文件分享传输技术,通过S Beam,只需要将两部手机"背靠背"轻触,就可以快捷的分享手机上的各种文件:图片,音乐,视频,联系人甚至是正在浏览的网页等 ...

  4. 三星android平板,三星也不忘Android平板,或推带虹膜识别的Galaxy Tab S4

    拼 命 加 载 中 ... Android平板向来被大家视为鸡肋产品,但小米在不久前推出了小米平板4,对于球迷朋友.吃鸡手游玩家还是有些用处的,近日也有消息指出三星也不忘Android平板,将会带来新 ...

  5. android wear tizen,三星tizen和谷歌android wear对比 android wear和三星tizen哪个好

    三星tizen和谷歌android wear对比: 说实话,要问目前智能手表产品哪个系统最好,其实没有人能给出准确的答案.除去苹果Apple Watch和watchOS之外,还剩下了谷歌的Androi ...

  6. android自动切换暗色,Android 适配深色模式的总结

    Android Q 推出了深色模式,其实 Android 9 就有了,部分厂商小米,三星就在系统 Android 9 加入了深色模式的开关. Android 提供了一套夜间模式主题,继承 Theme. ...

  7. 黑名单电话自动拦截【Android】

    1.功能描述: 当前手机中保存了一些黑名单电话号(如110等) 当一个电话打入进来, 如果它刚好是一个黑名单号码, 就会自动将电话挂断 过程分析: 启动服务 在服务中监听电话状态, 当电话状态是响铃时 ...

  8. Android退出APP 并杀掉相关的所有进程

    Android退出APP 并杀掉相关的所有进程 代码如下: ActivityManager mActivityManager = (ActivityManager) mContext.getSyste ...

  9. Android 通过蒲公英pgyer的接口 Service 实现带进度下载App 通知栏显示 在线更新 自动更新Demo

    Android 通过蒲公英pgyer的接口 Service 实现带进度下载App 通知栏显示 在线更新 自动更新Demo 标签: app在线更新下载Update升级 2016-09-18 20:47  ...

最新文章

  1. Spark快速上手-WordCount案例
  2. oracle--表,用户,授权
  3. SRS学习笔记7-SrsHttpServer
  4. Math.round(),Math.ceil(),Math.floor()的区别
  5. CWnd类与Windows窗口的关系-3、CWnd类如何封装Windows窗口
  6. Cacti实现网络监控的使用心得(1)
  7. 蓝桥杯 ALGO-123 算法训练 A+B problem
  8. 使用java进行图像处理_使用Java进行图像处理
  9. gulpsass安装配置
  10. ukij手机字体_微信小程序一些常见的坑
  11. python怎么看自己安装的第三方包_安装第三方包查看python版本/第三方包版本
  12. 汽车故障诊断技术【9】
  13. python把工作簿拆分为工作表_如何批将Excel的多个Sheet工作表拆分为独立的工作簿?...
  14. poj 3070 Fibonacci(矩阵快速幂求Fibonacci数列)
  15. java8新特性之stream
  16. CODESYS Automation Server Connector
  17. 重学Android基础系列篇(五):Android虚拟机指令
  18. 不用工具查看dll的导出函数名的方法!
  19. word中对号(√)怎么打
  20. 2014年终工作总结

热门文章

  1. Zeppelin架构原理分析
  2. Nginx配置SSL证书——采用腾讯云SSL证书配置Nginx使用https访问
  3. 五分钟了解支付、交易、清算、银行等专业名词的含义?
  4. MySQL学习笔记(七)—— 数据备份还原
  5. Spark程序开发规范
  6. 华为鸿蒙手机系统什么时候开始更新_来了!华为“鸿蒙”系统发布时间提前确认,90%以上手机都能升级...
  7. cs做html5网页游戏,《CS:GO》nexa:我终于领悟到该做些什么来让队伍取得胜利了...
  8. 《机器学习实战》学习笔记:Logistic回归预测疝气病证的死亡率
  9. JAVA中parameterized,谈谈Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType...
  10. 2022年NOC大赛创客智慧编程赛道图形化scratch复赛题,包含答案解析