在我的应用程序中,我使用菜单后退按钮返回上一个活动。我的一项活动是从之前的活动获得意图,并且在进行http调用后,它将意图发送到下一个活动,因此流程是A1 - 意图 - > A2 - 意图 - > A3。问题是当我从A3回到活动A2时它崩溃了。我相信原因是空洞的意图。所以我在活动A3和A2中添加了以下代码
活动A3
public boolean onOptionsItemSelected(MenuItem menuItem) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
switch (menuItem.getItemId()) {
case android.R.id.home:
Intent homeIntent = new Intent(context, AllClasses.class);
homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
homeIntent.putExtras(b); // bundle b has the required data for A2
startActivity(homeIntent);
}
return super.onOptionsItemSelected(menuItem);
}
活动A2
protected void onReStart(){
// retreiving data from intent
Bundle b = new Bundle();
b = getIntent().getExtras();
String imessage_string = b.getString("imessage");
Log.d("onrestart",imessage_string);
}
问题: - 现在的问题是,现在如果我按下A3菜单栏上的后退按钮,我会看到消息“不幸的项目已经停止”,然后在按下“确定”后A2开始,就像我从A1移动到A2并调用asyncTask。如果我发表评论“homeIntent.putExtras(b);”在A3然后我接收错误消息两次并直接跳转到A1。我肯定在返回A2时我的onRestart()方法没有被调用,因为我没有在那里调用asyncTask。有谁知道我应该在这做什么?感谢您提前帮助.... :)