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
- Java.io.IOException: No se puede analizar la respuesta del servidor en getFromLocationName ()
- Servicio no disponible - Geocoder Android
- Java.io.IOException: falló grpc
- Android GeoCoder devuelve sólo 1 resultado
- Android geocoder ubicación inversa - forma fiable para obtener la ciudad?
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?
- Servicio GeoCoder no disponible
- Android Geocoder.getFromLocationName dejó de funcionar con los límites
- Diferencia entre el geocoder de ubicaciones de Android y la API de mapas de Google
- Geocoder.getFromLocationName devuelve sólo null
- Resultados de geocodificación sin mostrarlos en un mapa
- Error de Geocoder grpc
- Android Geocoder obtener nombre corto del área de administración
- ¿Cómo puedo extrapolar más lejos por un camino?
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
.
- Android MapView – botones de zoom personalizados
- Android Studio Instant ejecutar no funciona con java 8 en android