immer den Kontext, in einer Klasse, die Runnable implementiert
Habe ich eine app in android, die in einem anderen thread aus dem UI(die implementiert Runnable)
Erhalte ich einige Daten(GPS-Daten in form von Längen-und Breitengrad) und aus diesen Daten die ich
wanna finden Sie heraus, die richtige Adresse, indem Sie es zu einem Geocoder.....danach wird die Adresse zurückgegeben, die vom Geocoder ich es speichern in eine Datenbank:
Hier ist, wie ich diese Dinge tun:
public class Client implemets Runnable{
public void run()
{
Geocoder myLocation=new Geocoder(getApllicationContext,Locale.getDefault());
}
}
aber ich bekomme diesen Fehler hier:
Geocoder myLocation=new Geocoder(getApplicationContext,Locale.getDefault());
Runnable nicht wissen, wer getApplicationContext
ist.....Ich habe versucht, mit "diesem" statt, sondern die gleiche Geschichte.....
Nun welcher ist der richtige Kontext, um pass in der Geocoder-Konstruktor????
Hier ist, wie der Geocoder-Konstruktor sieht so aus:
Geocoder myLocation =new Geocoder(context,locale);
In meiner Tätigkeit kann ich dies tun:
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());
}
}
Wie sollte ich ändern den Konstruktor
public ClientThread_special(DBAdapter db){
this.db=db;
}
in Ordnung zu haben in meinem Thread den Kontext von Server2?
- Warum benutzt du einen Thread auf? Google empfiehlt, gegen solche Dinge: developer.android.com/resources/articles/...
- dass link tot ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke mal, deine Klasse
ClientThreadSpecial
ist eine separate Klasse (keine innere Klasse)? Wenn ja, warum nicht, übergeben Sie den Kontext aus Ihrer Berufung Aktivität?Wenn es ist eine innere Klasse, es ist sogar noch einfacher. Vorausgesetzt, Ihr
ClientThreadSpecial
-Klasse ist eine innere Klasse von derMyActivity
-Klasse (erstreckt sich die Aktivität), die Sie verwenden können, so etwas wie dieses:Können Sie nicht verwenden
this
weilthis
bezieht sich auf ein Runnable. Da die Runnable definiert ist, innerhalb MyActivity (ersetzen Sie mit Ihrer Aktivität /Service name), können Sie sich beziehenMyActivity.this
.