在LocationListener中获取上下文

时间:2012-03-28 14:03:45

标签: android android-context

我需要将一个上下文传递给一个函数,我无法用getApplicationContext()来获取它的上下文我必须说我的应用程序是一个服务。那么如何在locationListener

中获取上下文

更准确地说是onLocationChanged(Location location)方法

2 个答案:

答案 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()