22 Stimmen

Wie startet man eine Aktivität korrekt aus PostExecute in Android?

Ich habe eine AsyncTask, die eine benutzerdefinierte Liste mit geparsten Daten aus dem Internet füllt.

In PostExecute fülle ich diese Liste und mache sie bereit für die Übertragung in eine neue Aktivität.

Ich mache es so:

@Override
protected void onPostExecute(List<VideoDataDescription> result) 
{
    super.onPostExecute(result);
    MainActivity.progressDialog.dismiss();

    context.startActivity(new Intent(context, ResultsQueryActivity.class));

}

wo der Kontext

    private Context context;

In LogCat erhalte ich nach dem Ausführen dieses Codes eine Java.lang.NullPointerException. Ist es möglich und korrekt, eine Activity zu starten, wenn ich das tue?

UPD Ich habe hinzugefügt

    private Context mContext;

public YoutubeAndYahooParser(Context context) 
{
    super();
    this.mContext = context;
}

um den Kontext zu initialisieren und die

YoutubeAndYahooParser youtubeAndYahooParser = new YoutubeAndYahooParser(ResultsQueryActivity.this);
                    youtubeAndYahooParser.execute("my string to pass in asynctak");

Danach in PostExecute

Intent intent = new Intent(mContext, ResultsQueryActivity.class);
 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 mContext.startActivity(intent);    

Ich habe eine neue Flagge hinzugefügt, weil ich in LogCat die nächste bekommen habe:

*Der Aufruf von startActivity() von außerhalb eines Activity-Kontextes erfordert das Flag FLAG_ACTIVITY_NEW_TASK. Ist es wirklich das, was Sie wollen?*

Habe ich Recht?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X