You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter插件开发:如何注销Lifecycle监听器?

清理方案

你需要在onDetachedFromActivity中完成两项清理操作,对应你在onAttachedToActivity里的注册行为:

  • 移除权限请求结果监听器
    调用ActivityPluginBinding的removeRequestPermissionsResultListener方法,传入当前监听器实例(即this),避免监听器持有引用导致内存泄漏。
  • 清空Activity引用
    将currentActivity置为null,切断插件对Activity的强引用,防止Activity被销毁后仍被插件持有引发内存泄漏。

对应的代码实现如下:

override fun onDetachedFromActivity() {
  // 移除权限请求结果监听器
  binding?.removeRequestPermissionsResultListener(this)
  // 清空Activity引用
  currentActivity = null
}

注意:如果你的binding是在onAttachedToActivity中保存的成员变量,才能直接调用上述代码;若未保存binding,建议在onAttachedToActivity时将其存为成员变量,方便后续清理。

内容的提问来源于stack exchange,提问作者RabbitHole24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 16:30:58