Ich versuche, den Kontext in meiner AsyncTask der Klasse Opciones abzurufen (diese Klasse ist die einzige, die diese Aufgabe aufruft), aber ich weiß nicht, wie ich das machen soll. Ich habe folgenden Code gesehen:
protected void onPostExecute(Long result) {
Toast.makeText(Opciones.this,"Subiendo la foto. ¡Tras ser moderada empezara a ser votada!: ", Toast.LENGTH_LONG).show();
}
Aber es funktioniert nicht bei mir, heißt es: "No enclosing instance of the type Opciones in scope"
AsyncTask
Antworten:
Sie müssen folgende Dinge tun.
Beispiel
Und instanziieren Sie die Klasse, indem Sie folgen.
quelle
Wenn Sie einen schwachen Verweis auf die Host-Aktivität halten, werden Speicherverluste vermieden.
quelle
Da nur einer
Activity
diese Aufgabe verwendet, machen Sie sie einfach zu einer inneren Klasse davonActivity
Dann haben Sie Zugriff auf Mitgliedsvariablen von
Activity
undContext
quelle
AsyncTask
es für kurzlebige Operationen und oft zum Aktualisieren von Ansichten in einemActivity
. Es ist oft eine gute Idee, sie abzubrechen,onPause()
wenn sie noch laufen. Vielleicht irre ich mich, aber das waren schon immer meine Gedanken. Hier finden Sie weitere Informationen zu diesem Thema .Du kannst schreiben
getApplicationContex()
. Oder Definieren Sie eine globale Variable.Und bei der
onCreate()
Veranstaltungdann,
quelle