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?

2 Solutions collect form web for “Obtener el contexto en una clase que implementa Runnable”

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 .

  • Servicio no disponible - Geocoder Android
  • Servicio no disponible al llamar a geoCoder.getFromLocation ()
  • El geocodificador no siempre devuelve un valor
  • El servicio de Google Geocoder no es viable (Coordenadas a la dirección)
  • Google Maps android consigue longitude-latitud moviendo un marcador en el mapa
  • Android GeoCoder devuelve sólo 1 resultado
  • Cómo obtener sólo Ciudad, Estado, País de lat, largo en android
  • ¿Cómo puedo extrapolar más lejos por un camino?
  • Extraer dirección de cadena - Equivalente a NSDataDetector en iOS
  • Android Geocoder.getFromLocationName dejó de funcionar con los límites
  • ¿Cuál es la mejor manera de interpretar la ubicación del usuario junto a Geocoder
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.