【问题标题】:mainactivity not closing on finish method callmainactivity 未在完成方法调用时关闭
【发布时间】:2013-09-21 08:07:52
【问题描述】:

我试图在从膨胀的设置菜单中选择后完成我的主要活动,但由于某种原因它没有完成..任何想法为什么?

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    switch (item.getItemId()){
    case R.id.action_settings:
        Intent i = new Intent (getApplicationContext(), Prefs_Activity.class);
        startActivity(i);
        finish();
        return true;
    default:
    return super.onOptionsItemSelected(item);

    }

}

在完成设置活动后,打算重新启动主活动 i,最终得到两个主活动的堆栈...

我的第一个想法是将完成方法移到 startactivity 上方...但这似乎会杀死以下代码...

【问题讨论】:

    标签: android activity-finish


    【解决方案1】:

    活动实际上正在关闭。问题在于 Prefs_Activity 类中的调用完成会重新启动从中派生 startactivity 意图的活动类,以及使用意图启动 mainactivity...

    一如既往的社区,感谢您的所有帮助!

    【讨论】:

      【解决方案2】:

      替换以下代码

          Intent i = new Intent (getApplicationContext(), Prefs_Activity.class);
          finishFromChild(CurrentActivity.this);
          startActivity(i);
          return true;
      

      而不是你的

          Intent i = new Intent (getApplicationContext(), Prefs_Activity.class);
          startActivity(i);
          finish();
          return true;
      

      ref:http://developer.android.com/reference/android/app/Activity.html#finishActivityFromChild(android.app.Activity, int)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-21
        • 1970-01-01
        • 1970-01-01
        • 2017-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多