以下举两个熟悉的内存泄漏的例子,然后通过androidstudio的Profile来分析定位内存泄漏的地方,且通过类似的方法可以自己去验证哪些情况会存在内存泄漏的情况,很多网上的说这种情况会泄漏那种情况会泄漏,很多都是理论,实际自己如果有时间的话可以自己去验证,通过自己验证的结论才是最真实的结论!
1.示例代码如下,oncreate的时候new Thread,然后handler死循环延迟执行,都是内部类会持有activity的引用的例子
public class MainActivity extends Activity {
private Handler mHandler;
boolean mStartThreadFlag = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mHandler=new Handler();
new Thread(new Runnable() {
@Override
public void run() {
while (mStartThreadFlag){
int i=0;
i++;
}
}
}).start();
mHandler.postDelayed(new Runnable() {
@Override
publi