main活动没有关闭完成方法调用

时间:2013-09-21 08:07:53

标签: android activity-finish

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

@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);

    }

}

完成设置活动后,意图重新启动mainactivity i,最后得到一堆两个主要活动......

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

替换以下代码

    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)