Android: finish () обновляет активность - PullRequest
0 голосов
/ 13 апреля 2011

У меня есть действия A и B. Операция A вызывает B со следующими кодами:

Intent iSettings = new Intent(A.this, B.class);
startActivityForResult(iSettings, ACTIVITY_SAVE_PREF);
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
startActivity(iSettings);

Операция B завершается и возвращается к действию A, нажав кнопку НАЗАД, которая имеет следующий код:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Bundle bundle = new Bundle();
        bundle.putBooleanArray(KEY_PREFERENCES, value);

        Intent mIntent = new Intent();
        mIntent.putExtras(bundle);
        setResult(RESULT_OK, mIntent);
        finish();
        overridePendingTransition(R.anim.fadein, R.anim.fadeout);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

Моя проблема в том, что действие B обновляется до своего первого состояния, которое было вызвано действием A в первый onKeyDown Back.Занятие B заканчивается только на втором onKeyDown Back и успешно возвращается к занятию A.

Может ли кто-нибудь помочь мне и сказать, если я что-то упустил, пожалуйста?Большое спасибо заранее!

Ответы [ 2 ]

2 голосов
/ 13 апреля 2011
Intent iSettings = new Intent(A.this, B.class);
startActivityForResult(iSettings, ACTIVITY_SAVE_PREF); //here
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
startActivity(iSettings); // and here

Если вы дважды начинаете свою деятельность, то, что вы считаете обновлением, вы просто закрываете второе действие, а первое стоит за ним

0 голосов
/ 13 апреля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...