Android 可以静态引用来查看内存泄漏吗?

Android 可以静态引用来查看内存泄漏吗?,android,memory-leaks,Android,Memory Leaks,我对Android开发还很陌生,我读过关于Android平台的文章。我不确定,如果我的以下代码 public class TransactionDetailActivity extends Activity { private Transaction transaction; private TextView tvDetail; //static reference public void onCreate(Bundle savedInstanceState) { super.on

我对Android开发还很陌生,我读过关于Android平台的文章。我不确定,如果我的以下代码

public class TransactionDetailActivity extends Activity {

private Transaction transaction;

private TextView tvDetail; //static reference

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.screen_transaction_detail);

    tvDetail = (TextView) findViewById(R.id.detail); //init of reference
}
在切换其他活动时,在屏幕旋转后,此存储到静态引用是否会导致内存泄漏?如果是,我如何避免它


非常感谢您的帮助

私人文本查看电视详情不是静态引用

私有静态文本视图tvDetail
是一个静态引用,但并不可取。这里有一个解释:

有时,我们开发人员将变量设置为静态,以避免重新创建对象。。。在您的案例中,类似这样的情况:

// DON'T DO THIS! FOR THE LOVE OF GOD! 
if( tvDetail == null ){
    tvDetail = (TextView) findViewById(R.id.detail);
}

但这在android开发中是错误的,因为每次调用
onCreate
方法时,也会创建对UI元素的新引用。所以,尽量避免上面的代码。

我认为这篇文章中没有足够的“上帝的爱,不要这样做”,所以我想补充更多。不要那样做!停止不糟糕!不要对UI元素进行静态引用!如果所有活动共享的自定义标题中都有一个不确定的进度条,并且您希望任何thead从您所属的任何活动更改其状态,该怎么办?为什么要在活动之间共享一个不确定进度条?这并不代表任何性能改进。除此之外:视图保存对上下文对象的引用(顺便说一句,有时候这非常方便,可以减少对上下文的保留。View.getContext()非常好)。上下文引用是Android内存泄漏的一个非常常见的来源。最重要的是,如果视图的屏幕被重新创建,那么对视图的引用可能指向错误的数据结构,并且再也找不到了。这可能会导致NullPointerException,如果我只想在整个应用程序中使用一个在调用任何api命中时可见的Progress对话框,我如何在不泄漏内存的情况下实现它?