Immer der Zusammenhang in einem Thread genannt, die von einem Dienst
Habe ich das folgende Stück code:
public class DumpLocationLog extends Thread {
LocationManager lm;
LocationHelper loc;
public void onCreate() {
loc = new LocationHelper();
lm = (LocationManager) Context.getSystemService(Context.LOCATION_SERVICE);
}
public void run() {
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, loc);
}
}
Ich soll es ausgeführt werden, von einem remote-service, aber in der Zeile lm = (LocationManager) Context.getSystemService(Context.LOCATION_SERVICE);
ich eine NullPointerException
Fehler natürlich, weil der context
null ist.
Wie bekomme ich den Zusammenhang hier? getBaseContext()
oder getApplicationContext()
funktioniert nicht.
InformationsquelleAutor noloman | 2011-08-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
Thread
würde nicht haben alle direkten Zugang zu einerContext
standardmäßig; Sie hätte, um es zu übergeben. Ein Thread tut auch nicht wichtig, dass einonCreate
- Methode (die ich vermute, Sie nennen manuell) - würde ich nur ändern Sie es zu einem Konstruktor. Sie kann nur passieren in einem Kontext, in dem der Konstruktor des Thread:Würden Sie instanziieren es mit
new DumpLocationLog(this);
wenn verwendet, die aus einemService
(ein Dienst ist eine Unterklasse der Kontext, sothis
hier funktioniert). Sie starten den thread durch Aufruf derstart()
Methode.new DumpLocationLog().start();
obwohl ich schon versucht mitnew DumpLocationLog(getApplicationContext()).start();
odernew DumpLocationLog(getBaseContext()).start();
aber keiner von Ihnen arbeitete.Dies ist, was ich versucht und hat funktioniert!
Content context;
undnew DumpLocationLog(context, latString, lngString).start();
InformationsquelleAutor antonyt
Könnten Sie übergeben einen gültigen Kontext durch den Konstruktor, oder, wenn Ihre Klasse ist eine innere Klasse in eine service, den Sie nutzen könnten ServiceClassName.diese.getContext()
Can’t create handler inside thread that has not called Looper prepare in Android
. Meine Klasse ist nicht eine innere Klasse, könnte ich es eine innere Klasse? Nicht sicher, über diese..InformationsquelleAutor JohnUopini