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?