Как определить, вернулась ли из детской активности?

Как я могу определить, было ли мероприятие сосредоточено после нажатия кнопки «Назад» из дочерней активности и как я могу выполнить какой-то код в это время?

Solutions Collecting From Web of "Как определить, вернулась ли из детской активности?"

Метод, который вы ищете, может быть методом onResume, который вы можете реализовать в своем классе мамы;). Вы должны знать, что onResume также называется первым, когда вы запускаете какую-либо деятельность. Посмотрите на жизненный цикл деятельности: http://developer.android.com/images/activity_lifecycle.png

С Уважением,

Одной из возможностей было бы начать свою startActivityForResult() деятельность с помощью startActivityForResult() и реализовать onActivityResult() который будет вызываться при возврате из дочерней активности.

Ответ js прав, но вот какой-то отлаженный код.

Объявите код запроса как константу в верхней части вашей деятельности:

 public static final int OPEN_NEW_ACTIVITY = 123456; 

Поместите это, когда вы начнете новую деятельность:

 Intent intent = new Intent(this, NewActivity.class); startActivityForResult(intent, OPEN_NEW_ACTIVITY); 

Сделайте что-нибудь, когда действие закончено. Документация предполагает, что вы используете resultCode , но в зависимости от ситуации ваш результат может быть RESULT_OK или RESULT_CANCELED при нажатии кнопки. Поэтому я оставил бы это.

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == OPEN_NEW_ACTIVITY) { // Execute your code on back here // .... } } 

По какой-то причине у меня были проблемы, когда я помещал это в Фрагмент. Таким образом, вам придется поместить его в Activity.

Вы также можете переопределить метод onBackPressed () и метод onOptionsItemSelected () и поместить туда некоторую логику. Например, я помещал это в свой BaseActivity, который распространяется на все остальные действия:

 @Override public void onBackPressed() { // your logic super.onBackPressed(); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { // your logic } return super.onOptionsItemSelected(item); }