如何从普通类中获取Context?

时间:2014-04-11 03:20:36

标签: android

我知道我可以使用getApplicationContext()从ListActivity的子类中获取Context。 但是PublicPar是常见的类,我怎样才能从这个类中获取Context。

public class SMSMain extends ListActivity { 

     @Override
    protected void onCreate(Bundle savedInstanceState) {        
        Context my=getApplicationContext();         
    }

}



public class PublicPar {
    public static void SetNotification(){       

    }
}

3 个答案:

答案 0 :(得分:1)

如果您有一个像PublicPar类这样的公共(辅助类型)类,那么您可以做的最好的事情是将上下文作为参数传递给每个方法:

public static void SetNotification(Context context) {       

}

请记住,不要将此上下文设置为任何PublicPar类变量,以避免泄漏它。

答案 1 :(得分:0)

试试这个。它应该工作:

public class SMSMain extends ListActivity { 

     @Override
    protected void onCreate(Bundle savedInstanceState) {        
       // Context my=getApplicationContext();

         new PublicPar().SetNotification(SMSMain.this)
    }

}



public class PublicPar {
    public static void SetNotification(final Context context ){       

                // You can proceed with using the context here.
    }
}

答案 2 :(得分:0)

如果您不想在构造函数参数中传递Context,则可以在应用程序中公开静态方法。

public class MyApplication extends Application {
    private static MyApplication myinstance;
    public MyApplication() {
        myinstance = this;
    }

    public static Context getAppContext() {
        myinstance.getApplicationContext();
    }
}