Android 使用内部类避免内存泄漏
这件事难倒我了。我似乎不知道如何正确地在android中创建新的侦听器以避免内存泄漏。我是否会使用一个静态的内部类和一个外部类的软引用(因为我需要访问外部类变量)?或者我应该这样做:Android 使用内部类避免内存泄漏,android,Android,这件事难倒我了。我似乎不知道如何正确地在android中创建新的侦听器以避免内存泄漏。我是否会使用一个静态的内部类和一个外部类的软引用(因为我需要访问外部类变量)?或者我应该这样做: setScrollListener(new ScrollListner { //methods here. }); 只有当Scrolllistener从活动外部引用时,才会发生内存泄漏 如果在代码中使用scrolllistener,则侦听器将保留对活动的引用,因为它是匿名类。但对您的侦听器的唯一引用将来自此活
setScrollListener(new ScrollListner {
//methods here.
});
只有当Scrolllistener从活动外部引用时,才会发生内存泄漏
如果在代码中使用scrolllistener,则侦听器将保留对活动的引用,因为它是匿名类。但对您的侦听器的唯一引用将来自此活动的引用视图。一旦活动完成,垃圾收集器可以立即清理整个内存 为什么内部类内存泄漏?哪个内部类?静态的还是我提供的示例?如果使用得当,在任何情况下都不会出现内存泄漏,您能详细说明吗?你说正确使用是什么意思?我明白你现在说的。我只是在加载大约300个项目的列表时不断出现OOM错误。我不知道怎么了。我使用的是viewholder模式,没有图像。我想这是我的非静态内部类。我对这个问题很感兴趣。也许是项目列表本身,在另一个问题中发布更多代码,也许我们可以帮助你