Основная активность не закрывается при вызове метода завершения

Я пытаюсь завершить свою основную деятельность после выбора из раздутого меню настроек, но по какой-то причине это не заканчивается .. есть идеи, почему?

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

    }

}

после завершения действия настроек с намерением перезапустить основное действие я получаю стек из двух основных действий...

моя первая мысль состояла в том, чтобы переместить метод завершения выше стартовой активности... но похоже, что это убьет следующий код...


person me_    schedule 21.09.2013    source источник


Ответы (2)


На самом деле действие закрывается. Проблема существует в том, что вызов завершения в классе Prefs_Activity перезапускает класс действия, из которого было получено намерение startactivity, а также запуск основного действия с намерением...

как всегда сообщество, спасибо за вашу помощь!

person samuel raisbeck    schedule 21.09.2013

Замените следующий код

    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)

person Moses    schedule 21.09.2013