runOnApplicationAttachOnce
注册只执行一次的 attach 回调。
回调在领取后、执行前就从登记表摘除并释放强引用,所以即使它抛异常也算消费;之后不会再有第二次分发。 晚注册(attach 已发生、appContextOrNull 非 null)时在当前线程同步执行一次,随后立即失效。 需要再次等待时重新登记。
调用前必须先完成 initOnModuleLoaded。找不到 Application.attach(Context) 时抛出 IllegalStateException; 安装或 Context 读取失败保留原异常,注册失败不留下回调。
返回的 token 只用于取消;登记只在当前 module generation / classloader 内有效,热重载不会把它带到新一代。