This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

Android 生命周期监听器

编辑页面

了解一种机制,该机制允许你的库使用 Expo 模块 API 挂钩到 Android Activity 和 Application 函数。


你无需在 MainApplication.java 或 MainApplication.kt 中注册此类。Expo Autolinking 会扫描每个已链接模块的 Android 源代码,查找文件名以 Package.java 或 Package.kt 结尾且实现了 Package 接口的类。在 Android 构建期间,它会将这些类添加到生成的 ExpoModulesPackageList 中,Expo 使用该列表创建生命周期监听器。如果该模块已经支持 Android,你也无需将 Package 类添加到 expo-module.config.json 中。

// android/src/main/java/expo/modules/mylib/MyLibApplicationLifecycleListener.kt package expo.modules.mylib import android.app.Application import expo.modules.core.interfaces.ApplicationLifecycleListener class MyLibApplicationLifecycleListener : ApplicationLifecycleListener { override fun onCreate(application: Application) { // 你的 `Application.onCreate` 中的初始化代码。 doSomeSetupInApplicationOnCreate(application) } }

已知问题

为什么没有 onStart 和 onStop 的 Activity 监听器

在当前实现中,我们不是从 MainActivity,而是从 ReactActivityDelegate 设置这些钩子。MainActivity 和 ReactActivityDelegate 之间存在一些细微差异。由于 ReactActivityDelegate 没有 onStart 和 onStop,因此我们目前不支持它们。

接口稳定性

这些监听器接口在 Expo SDK 的不同版本之间可能会时不时发生变化。我们对向后兼容性的策略始终是新增接口,并为我们计划移除的接口添加 @Deprecated 注解。我们的接口都基于 Java 8 接口默认方法;你不需要也不应该实现所有方法。这样做将有利于降低你的模块在不同 Expo SDK 之间的维护成本。