java - 当活动被破坏/暂停时,我应该删除任何监听器吗?安卓工作室
问题描述
我想知道当应用程序进入后台/被销毁时是否应该明确删除任何观察者/听众。或者我不应该删除因为android机器知道什么时候删除?
谢谢 :)
解决方案
如果您的意思是 UI 侦听器喜欢onClickListener
按钮,那么现在没关系,因为当应用程序在后台时,无法采取任何行动。当活动被破坏时,所有的听众也将被破坏。
但是如果您的活动正在观察另一个类并根据该类中的更改进行自我更新,那么您需要在活动中注册活动onStart
并取消注册onStop()
活动。否则,由于活动未激活,可能会导致异常。
您应该注意的另一种情况是,当您在 Activity 内部创建Thread
一个静态内部类并引用您的 Activity 时。并且只要线程正在运行,活动就不会被垃圾收集。如果活动在线程完成之前死亡,这可能会导致内存泄漏
推荐阅读
- ios - 为什么我创建的 stackView 不显示?
- spring-integration - 使用 DSL 为传出网关的响应指定变压器的首选方法是什么
- user-interface - RadClientExportManager - 复选框的 UI 对齐问题
- php - 记录进度/输出和捕获错误的 PHP-CLI 最佳实践
- sql - 在 SQL Server 的同一列中减去 2 行
- r - 如何从贝叶斯网络存储库中的 RDA 或 RDS 文件中提取观测数据?
- jquery - 在连续第三个逗号后将逗号更改为冒号
- java - 查找字谜的简单算法
- matlab - ROI 透明背景 (MATLAB)
- azure - 在 Azure Web APP 中安装 Net Core 2.1 站点时 HTTPS 导致缺少视图