问题现象:
在handler中嵌套Handler时会出现该问题;
解决方法:
1.Handler类应该应该为static类型,否则有可能造成泄露。在程序消息队列中排队的消息保持了对目标Handler类的应用。如果Handler是个内部类,那么它也会保持它所在的外部类的引用。为了避免泄露这个外部类,应该将Handler声明为static嵌套类;
2.如果要使用外部类的引用的话,要使用对外部类的弱应用。
本文探讨了在Java中处理Handler嵌套时可能出现的问题及解决方法。主要关注于避免Handler泄露,提出将Handler声明为static嵌套类或使用外部类的弱引用作为解决方案。
问题现象:
在handler中嵌套Handler时会出现该问题;
解决方法:
1.Handler类应该应该为static类型,否则有可能造成泄露。在程序消息队列中排队的消息保持了对目标Handler类的应用。如果Handler是个内部类,那么它也会保持它所在的外部类的引用。为了避免泄露这个外部类,应该将Handler声明为static嵌套类;
2.如果要使用外部类的引用的话,要使用对外部类的弱应用。
3538

被折叠的 条评论
为什么被折叠?