前言
- 本文为制造一个"非静态内部类对外部类的引用持有"泄漏并对其结果进行观察作为学习使用,手段是制造泄漏,目的是了解泄漏产生的原因并未解决提供一种思路。
- 本文基于的思想是:2个Activity,其中一个Activity的内部类被外部引用挂住,导致该Acitvity无法正常回收。
- 本文只是对泄漏测试代码的一个讲解,并没有涉及到泄漏排查工具的使用,结合工具使用我会另开一片文章,https://blog.csdn.net/user11223344abc/article/details/80319915
Code
俩个Activity,一个SplashActivity,一个LeakActivity。操作路径是从Splash跳到LeakActivity。往返5次之后,手动Gc。
SplashActivity
package zj.com;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import zj.com.rxjava_operators.R;
public class SplashActivity extends AppCompatActivity {
private LeakActivity.TestResource testResource;
private LeakActivity.TestResource testResource2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout