前言

大家都知道组件的执行任务的时间过长可能会导致ANR,但具体是多久呢?源码里面都定义了宏,我们把它们找出来,做了记录


正文

Service Timeout

文件:ActiveServices.java

    // How long we wait for a service to finish executing.    static final int SERVICE_TIMEOUT = 20*1000; // 前台    // How long we wait for a service to finish executing.    static final int SERVICE_BACKGROUND_TIMEOUT = SERVICE_TIMEOUT * 10; // 后台

broadcast Timeout

文件:ActivityManagerService.java

    // How long we allow a receiver to run before giving up on it.    static final int BROADCAST_FG_TIMEOUT = 10*1000;  // 前台    static final int BROADCAST_BG_TIMEOUT = 60*1000;  // 后台

InputDispatching Timeout

文件:ActivityManagerService.java

    // How long we wait until we timeout on key dispatching.    static final int KEY_DISPATCHING_TIMEOUT = 5*1000;

ContentProvider Timeout

文件:

    // How long we wait for an attached process to publish its content providers    // before we decide it must be hung.    static final int CONTENT_PROVIDER_PUBLISH_TIMEOUT = 10*1000;

这个时间的统计区间是在System_Server进程调用startProcessLocked之后会调用AMS.attachApplicationLocked,以这为起点,一直到provider进程installProvider以及publishContentProviders,调用到AMS.publishContentProviders为止。超过了这个时间就会系统就会杀掉Provider进程

更多相关文章

  1. Android(安卓)WebView 踩过的坑
  2. Android(安卓)常用代码集合
  3. Android(安卓)studio配置Kotlin
  4. 解决android studio国内开发者Gradle下载慢问题
  5. Android(安卓)代码混淆
  6. Android(安卓)- JNI 串口通信
  7. Linux平台下搭建OgreKit on Android开发环境
  8. 解决通过Intent调用系统拍照程序,返回图片太小的问题[android]
  9. Android开发环境搭建和HelloWorld

随机推荐

  1. 同步、更新、下载Android Source & SDK f
  2. Android的核心服务 2
  3. Eclipse Android project name有错误, sou
  4. android 检测网络或wifi是否开启
  5. GridView的简单使用,带有点击事件
  6. [入门]Android的应用程序框架
  7. 跨平台移动开发 Android使用JPush推送消
  8. Android 4高级编程(第3版)》
  9. LinearLayout水平居中控制
  10. Android NDK学习教程(一)--第一个NDK程序