我有一個AsyncTask,它使用來自Internet的已解析數據填充自定義列表。如何從Android中的PostExecute正確啓動活動?
在PostExecute中填充該列表並準備好將其轉移到新的活動中。
我做這種方式:
@Override
protected void onPostExecute(List<VideoDataDescription> result)
{
super.onPostExecute(result);
MainActivity.progressDialog.dismiss();
context.startActivity(new Intent(context, ResultsQueryActivity.class));
}
其中上下文
private Context context;
在logcat中執行此代碼後,我收到了顯示java.lang.NullPointerException。 這是可能的和正確的開始一個活動,因爲我這樣做?
UPD 我已經加入
private Context mContext;
public YoutubeAndYahooParser(Context context)
{
super();
this.mContext = context;
}
初始化上下文和調用
YoutubeAndYahooParser youtubeAndYahooParser = new YoutubeAndYahooParser(ResultsQueryActivity.this);
youtubeAndYahooParser.execute("my string to pass in asynctak");
在此之後在PostExecute
Intent intent = new Intent(mContext, ResultsQueryActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
我增添了新的標誌,因爲我有在LogCat中下一個:
*從Activity上下文外調用startActivity()需要FLAG_ACTIVITY_NEW_TASK標誌。這真的是你想要的嗎?*
對嗎?
你是怎麼初始化'context'的? – Vladimir 2012-02-02 18:47:33
似乎是,沒有。如何初始化上下文? – 2012-02-02 19:04:27
看到dhaag23的回答 – Vladimir 2012-02-02 19:14:49