创建View传递Activity作为Context导致内存泄漏?

时间:2018-01-12 10:04:27

标签: android

public class MainActivity extends Activity {
    private TextView textView;
    protected void onCreate(Bundle savedInstanceState) {
        textView = new TextView(this);
        textView.setText("some text");
        setContentView(textView);
    }
}

我们有两个对象:MainActivity的一个实例和TextView的一个实例,它们都互相引用。所以基本上它会导致内存泄漏。我是对的吗?

2 个答案:

答案 0 :(得分:1)

这是与garbage collection algorithms

相关的问题

您的想法是Reference counting algorithm。正如您所说,circular reference情况存在一些问题。因此它不再用于现代JVM中。

您应该查看其他垃圾收集算法,看看现代JVM gc的工作原理。

https://www.dynatrace.com/resources/ebooks/javabook/how-garbage-collection-works/

答案 1 :(得分:-1)

不,请参阅此thisthis答案