runOnApplicationAttach

注册「Application.attach(Context) 之后跑什么」的回调。

第一次注册时库会自动 hook Application.attach,回调按注册顺序在 attach after 阶段执行。

  • 回调收到的是 Application.attach(Context) 的入参,不能假定它就是 Application;库会在触发回调前把它写入 appContext 缓存(仅当未初始化时)。

  • 如果注册时 application 已经 attach 过(即 appContextOrNull 非 null),新注册的回调会立即在当前线程同步触发一次。

  • callback 抛出的异常会被库捕获并记日志,不会影响其它已注册回调,也不会影响目标 app 的 Application.attach。

  • 回调长期保留且没有 token:需要能取消时用 subscribeApplicationAttach,只跑一次用 runOnApplicationAttachOnce。

调用前必须先完成 initOnModuleLoaded(hook API 依赖 base)。