android 6.0 activitymanagerservice keyword

在AMS中service默认处理timeout时间, 如果超过就会引发ANR。
@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;

@AMS MainHandler即AMS主线程会主要处理下面这些MSG:

UPDATE_CONFIGURATION_MSG
GC_BACKGROUND_PROCESSES_MSG
SERVICE_TIMEOUT_MSG
UPDATE_TIME_ZONE
CLEAR_DNS_CACHE_MSG
UPDATE_HTTP_PROXY_MSG
PROC_START_TIMEOUT_MSG
CONTENT_PROVIDER_PUBLISH_TIMEOUT_MSG
DO_PENDING_ACTIVITY_LAUNCHES_MSG
KILL_APPLICATION_MSG
FINALIZE_PENDING_INTENT_MSG
POST_HEAVY_NOTIFICATION_MSG

一般退出 handler线程可通过looper的quit函数:
mHandlerThread.getLooper().quit();

UiHandler android.ui thread
AMS也会把下面MSG放到android.ui线程中:

SHOW_ERROR_MSG
SHOW_NOT_RESPONDING_MSG
SHOW_STRICT_MODE_VIOLATION_MSG
SHOW_FACTORY_ERROR_MSG
WAIT_FOR_DEBUGGER_MSG
SHOW_UID_ERROR_MSG
SHOW_FINGERPRINT_ERROR_MSG
SHOW_COMPAT_MODE_DIALOG_MSG:
START_USER_SWITCH_MSG
DISMISS_DIALOG_MSG

DISPATCH_PROCESSES_CHANGED
DISPATCH_PROCESS_DIED
DISPATCH_UIDS_CHANGED_MSG

AMS中处理broadcast时,也会有时间要求,超过也会引发ANR。
BROADCAST TIMEOUT:

    // 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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值