具有静态参考的活动

时间:2011-02-09 15:43:50

标签: android

我正在处理由其他人编写的现有Android代码,它有几个内存问题。我无法理解的一个问题是这个。在主Activity类中,它有一个名为getReference()的静态方法。 此方法基本上返回对名为 mThis 的变量的引用。现在,在 onCreate 方法

class MyActivity extends Activity
 {
     private static MyActivity mThis;    
     public MyActivity getReference(){
           return mThis;
    }
     public onCreate(Bundle savedInstanceState){
       mThis = this;
     }

    ...
}

现在在Content提供程序或从Dialog类扩展的类中,它使用此静态方法来获取对上下文的引用。

我很确定这是不正确的,也是内存泄漏的原因之一。但有没有办法获得当前上下文而不实际传递每个类中的上下文对象。有一个应用程序上下文,但我认为它没有任何方法来获取当前上下文。

我可以删除此方法,然后将对上下文对象的引用传递给这些类。但有没有其他方法来解决这个问题。

2 个答案:

答案 0 :(得分:8)

  

我很确定这是不正确的,也是内存泄漏的原因之一。

  

但是有没有办法获得当前上下文而不实际传递每个类中的上下文对象。

没有“当前背景”。请为任何需要的方法提供Context。例如,您会注意到Android SDK的设置方式很多。

答案 1 :(得分:0)

在创建ContentResolver和Dialog时,上下文已在构造函数中传递,因此我认为不需要该方法。在其他课程中使用的mT是什么?