我使用菜单后退按钮时移动应用程序崩溃

时间:2014-12-01 19:15:38

标签: android android-intent android-activity

在我的应用程序中,我使用菜单后退按钮返回上一个活动。我的一项活动是从之前的活动获得意图,并且在进行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。有谁知道我应该在这做什么?感谢您提前帮助.... :)

1 个答案:

答案 0 :(得分:0)

如果您想将A3中的内容传递给A2(代表活动),请考虑在A2中使用onActivityResult

查看answer,希望有所帮助