Obtener el contexto en una clase que implementa Runnable

Tengo una aplicación en android que en un hilo diferente de la interfaz de usuario (que implementa Runnable)

Recibo algunos datos (datos GPS en forma de latitud y longitud) y de estos datos I

Queremos averiguar la dirección correcta pasándola a un Geocoder ….. después de que la dirección devuelta por Geocoder la almaceno en una base de datos:

Aquí es cómo hago estas cosas:

public class Client implemets Runnable{ public void run() { Geocoder myLocation=new Geocoder(getApllicationContext,Locale.getDefault()); } } 

Pero tengo error aquí:

 Geocoder myLocation=new Geocoder(getApplicationContext,Locale.getDefault()); 

Runnable no sabe quién es getApplicationContext ….. He intentado con "esto" en cambio, pero la misma historia …..

Ahora cual es el contexto adecuado para pasar al constructor de Geocoder ????

Así es como se ve el constructor de Geocoder:

 Geocoder myLocation =new Geocoder(context,locale); 

En mi actividad hago esto:

 public class Server2 extends Activity { public void onCreate(Bundle icicle) { ClientThread_special client = new ClientThread_special(db);//here is where I start thread new Thread(client).start(); } } 

 public class ClientThread_special implements Runnable { public ClientThread_special(DBAdapter db){ this.db=db; } public void run() { Geocoder myLocation=new Geocoder(getApllicationContext,Locale.getDefault()); } } 

¿Cómo debo modificar el constructor

 public ClientThread_special(DBAdapter db){ this.db=db; } 

Para tener en mi Runnable el contexto de Server2?

Supongo que su clase ClientThreadSpecial es una clase separada (no una clase interna)? Si es así, ¿por qué no pasa el contexto de su actividad de llamada?

Si es una clase interior, es aún más fácil. Suponiendo que su ClientThreadSpecial es una clase interna de la clase MyActivity (que extiende Actividad), puede utilizar algo como esto:

 Geocoder myLocation=new Geocoder(MyActivity.this,Locale.getDefault()); 

No se puede usar this porque se refiere a un Runnable. Dado que el Runnable se define en MyActivity (reemplace con su nombre de Activity / Service), puede hacer referencia a MyActivity.this .

  • Límite API de Google Geocoding
  • Cómo obtener PlaceID de nombre, o lat, largo en Android?
  • Geocoder.getFromLocation () devuelve direcciones en árabe
  • Extraer dirección de cadena - Equivalente a NSDataDetector en iOS
  • Geocoder.getFromLocation (); Tiempo agotado esperando la respuesta del servidor
  • El geocodificador no siempre devuelve un valor
  • Cómo obtener sólo Ciudad, Estado, País de lat, largo en android
  • Google Maps android consigue longitude-latitud moviendo un marcador en el mapa
  • El servicio de Google Geocoder no es viable (Coordenadas a la dirección)
  • ¿Por qué Android Geocoder está lanzando una excepción "Servicio no disponible"?
  • Servicio no disponible al llamar a geoCoder.getFromLocation ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.