Использование onResume () для обновления активности - PullRequest
7 голосов
/ 28 июля 2011

Не могу понять, как обновить активность после нажатия кнопки «Назад».В настоящее время у меня есть действие A, которое запускает намерение перейти к B, и, когда вы нажимаете назад, если я нажимаю назад, я хочу вернуться к действию A, но оно само обновляется.Я могу использовать это намерение для обновления действия в настоящее время:

Intent refresh = new Intent(this, Favorites.class);
    startActivity(refresh);
    this.finish();

Но я не могу понять, как правильно использовать функцию onResume (), чтобы обновить мое действие A после возврата к нему.

Ответы [ 3 ]

10 голосов
/ 28 июля 2011

Если вам нужно особое поведение ActivityA при возвращении с ActivityB, вам следует использовать startActivityForResult(Intent intent, int requestCode) вместо startActivity(Intent intent):

 startActivityForResult(new Intent(this, ActivityB.class), REQUEST_CODE); 

Таким образом, вы сможете обнаружить завершение ActivityB в ActivityA путем перегрузки onActivityResult(int requestCode, int resultCode, Intent intent):

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    if (requestCode == REQUEST_CODE) {
        doRefresh(); // your "refresh" code
    }
}

Это работает, даже если вы прервете ActivityB нажатием кнопки возврата. resultCode будет по умолчанию RESULT_CANCELLED.

3 голосов
/ 28 июля 2011

использование startActivityForResult(intent, requestCode); начать Activity B с Activity A

затем в Activity A переопределить onActivityResult(int requestCode, int resultCode, Intent data)

там вы можете обновить Activity A

1 голос
/ 28 июля 2011

Вам необходимо поместить код, который обновляет пользовательский интерфейс вашей активности, в метод onResume().Возможно, вам следует опубликовать еще немного кода или объяснить, что именно вы пытаетесь обновить.

...