Как получить уведомление о завершении перехода между мероприятиями?

Как говорится в названии …

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

Вот пример кода для создания перехода:

final Intent intent = new Intent(activity, TargetActivity.class); if (initialQuery != null) intent.putExtra(EXTRA_INITIAL_QUERY, initialQuery); final String transitionName = activity.getString(R.string.transition_name); ViewCompat.setTransitionName(viewToTransitionFromAndTo, transitionName); final ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, viewToTransitionFromAndTo, transitionName); ActivityCompat.startActivityForResult(activity, intent, requestCode, options.toBundle()); 

Solutions Collecting From Web of "Как получить уведомление о завершении перехода между мероприятиями?"

Вы можете добавить слушателя к любому из переходов, которые вы используете. Например:

 getWindow().getSharedElementTransition().addListener(listener); 

Это будет слушать, когда сам переход начинается и заканчивается. Однако он не дает вам всю информацию о переходе на активность. Например, вызывающая активность не знает, когда вызываемая активность завершила свой переход.

Предполагая, что переход сверху не отмечен полупрозрачным, базовому переходу будет сказано остановить – onStop() – когда верхняя активность стала непрозрачной. Это не означает, что переход завершен, это просто означает, что исчезновение верхней активности завершено. Я не могу думать о многом, что вы хотели бы сделать, как только деятельность прекратилась. Однако это не поможет, когда активность будет полупрозрачной.

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