hprof文件生成原因(.hprof文件)

hprof文件生成原因(.hprof文件)1 import android os Bundle 2 import android support v7 app AppCompatAct 3 4 import java lang ref WeakReferenc 5 import java util ArrayList 6 7 public class

大家好,我是讯享网,很高兴认识大家。



 1 import android.os.Bundle;  2 import android.support.v7.app.AppCompatActivity;  3  4 import java.lang.ref.WeakReference;  5 import java.util.ArrayList;  6  7 public class InnerClassLeaksActivity extends AppCompatActivity {  8  9 private ArrayList<String> list = new ArrayList<String>(); 10 11  @Override 12 protected void onCreate(Bundle savedInstanceState) { 13  super.onCreate(savedInstanceState); 14  setContentView(R.layout.activity_inner_class_leaks); 15 //模拟Activity一些其他的对象 16 for (int i = 0; i < 10000; i++) { 17 list.add(Memory Leak!); 18  } 19 //开启线程 20 new InnerClassHasLeak().start(); 21  } 22 23 public class InnerClassHasLeak extends Thread{ 24 25  @Override 26 public void run() { 27  super.run(); 28 //模拟耗时操作 29 try { 30 Thread.sleep(10 * 60 * 1000); 31 } catch (InterruptedException e) { 32  e.printStackTrace(); 33  } 34  } 35  } 36 public static class StaticInnerClassNoLeak extends Thread{ 37 private WeakReference<InnerClassLeaksActivity> mLeakActivityRef; 38 39 public StaticInnerClassNoLeak(InnerClassLeaksActivity activity){ 40 mLeakActivityRef = new WeakReference<InnerClassLeaksActivity>(activity); 41  } 42  @Override 43 public void run() { 44  super.run(); 45 //模拟耗时操作 46 try { 47 Thread.sleep(10 * 60 * 1000); 48 } catch (InterruptedException e) { 49  e.printStackTrace(); 50  } 51 //如果需要使用LeakActivity,我们需要添加一个判断 52 InnerClassLeaksActivity activity = mLeakActivityRef.get(); 53 if(activity != null){ 54 //do something 55  } 56  } 57  } 58 }

讯享网


讯享网

小讯
上一篇 2025-04-21 20:38
下一篇 2025-05-09 20:56

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/161825.html