我需要将一个上下文传递给一个函数,我无法用getApplicationContext()
来获取它的上下文我必须说我的应用程序是一个服务。那么如何在locationListener
?
更准确地说是onLocationChanged(Location location)
方法
答案 0 :(得分:9)
那么如何在locationListener中获取上下文?
如果LocationListener
是您服务的常规内部类,请使用MyServiceName.this
。
如果LocationListener
是静态内部类或单独的公共类,请在构造函数中提供Context。
换句话说,这与Java中的任何其他内容都没有区别。
答案 1 :(得分:1)
创建一个扩展Application类的类。然后添加一个单身就可以了。
public class MyApplication extends Application
{
private static MyApplication instance = null;
public MyApplication()
{
instance = this;
}
/**
* Instanciates the class and initializes the variables
*
*/
@Override
public void onCreate()
{
super.onCreate();
instance = this;
}
/**
* Creates a singleton of the current class
*
* @return Returns the app's context
*/
public static Context getInstance()
{
if (instance == null) instance = new MyApplication();
return instance;
}
}
然后在你的听众中,在呼叫context
时,只需拨打MyApplication.getInstance()
。