• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar

陈文管的博客

分享有价值的内容

  • Android
  • Affiliate
  • SEO
  • 前后端
  • 网站建设
  • 自动化
  • 开发资源
  • 关于

Android 8(Oreo)后台启动Service限制解析

2019年10月25日 | 最近更新于 上午12:48

本文针对Android 8(Oreo)开始对于后台启动Service限制做一个解析,一个是startService限制,另一个是startForegroundService启动服务之后5s内必须调用startForeground(),并提供对应异常的适配解决方法。

一、Android Oreo后台启动服务异常

从Androidxref上的源码来看,这个异常机制是从8.1.0版本开始引入的,在8.0.0的源码上还未引入这个限制。

1. 使用startService在后台启动服务

从Android 8.1.0开始,不允许在后台运行服务,应用处于后台的时候,使用startService启动后台服务会抛异常。

相应的异常日志信[……]

【阅读全文 ▽ 】

Android ANR详解

2019年9月24日 | 最近更新于 上午12:51

ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。本文内容包括ANR的类型说明,ANR的原理解析,ANR四种检测方案介绍和常见ANR问题的分析解决方法。

一、ANR的类型

1. InputDispatching Timeout

超时时间:谷歌平台默认5s,MTK平台8s

原因:对输入事件(例如按键或屏幕轻触事件)没有响应

2. Broadcast Timeout

超时时间:前台广播10s,后台广播60s

原因:在特定时间内无法处理完成[……]

【阅读全文 ▽ 】

Mac必备开发软件

2019年9月8日 | 最近更新于 上午12:17

在Mac环境下,有些软件对开发工作是非常有用的,比如查看分析日志、文件清理、代码拉取等,记录下平常开发中用到的软件,持续更新~

一、Mac文件清理

一次在使用电脑的时候,发现电脑运行卡顿,而且散热出口声音很烫,电脑变成了暖手宝。查看系统容量的时候发现系统文件快撑爆了。问题是我并没有安装很多软件,近期也没保存大文件数据。要查看整个磁盘文件到底是哪个文件占用比较大导致的,并且可以删除多余的文件,推荐使用OmniDiskSweeper,轻巧简单且免费。打开软件后双击显示在窗口中的Macintosh HD。

OmniDiskSweeper

之后软件就会详细分析硬盘中的文件(加载分析的速度有点慢),把所有文件占用的大小都列出来。查看占用的文件大头,逐个点开[……]

【阅读全文 ▽ 】

Android 子线程更新UI详解

2019年9月6日 | 最近更新于 上午12:56

本文内容介绍子线程操作UI抛出的CalledFromWrongThreadException异常解析,子线程操作UI的几种方法,及几种在子线程中操作UI导致的异常现象说明。

一、子线程中操作UI一定会报错?

不一定,如果是在onCreate中子线程操作UI控件,不会发生异常,可以正常更新UI,下面看下源码。

1. 首先是ViewRootImpl抛异常的地方

void checkThread() {
    if (mThread != Thread.currentThread()) {
        throw new CalledFromWrongThreadException(
[......]

【阅读全文 ▽ 】

Android Home键之后后台启动Activity延迟5秒

2019年9月1日 | 最近更新于 上午12:54

在客户反馈中遇到一个问题,Home键把应用置于后台,外部通过对接协议广播的方式,应用内接收到广播之后通过startActivity把应用从后台调起到前台,只是普通的逻辑调用,但是应用在后台停留了10S之后,应用才回到前台,并先出现了黑屏,之后才显示应用界面的问题。

从Activity的生命周期Log分析,在调用了startActivity之后,已经走到了onResume,但是过了5S之后,应用才显示出来。

一开始是怀疑系统方的问题,系统方分析之后,单单startActivity就花费了3S时间,之后还有应用内的Activity切换又耗费额外的2S,这5S时间可以看作是主线程的卡顿导致。但另外的5S是在onResume之后[……]

【阅读全文 ▽ 】

  • « Previous Page
  • Page 1
  • …
  • Page 6
  • Page 7
  • Page 8
  • Page 9
  • Page 10
  • …
  • Page 13
  • Next Page »
博客公众号
博客公众号

GitHub

https://github.com/wenguan0927

近期文章

  • Android平台动画类型详解
  • Kotlin null 详解
  • Android 残影数字动画实现详解
  • Android 卡片旋转切换动效实现详解
  • Android 心率动画自定义控件实现

友情链接

崔庆才的个人博客

Trinea  (codeKK)

Piasy

Paincker

wanandroid

陈祖杰的BLOG

闽ICP备18001825号-1 · Copyright © 2023 · Powered by chenwenguan.com