2016-11-09 2 views
0

Имею два вида деятельности: HomeActivity и CameraActivity. HomeActivity звонки CameraActivity с использованием намерения с флагом Intent.FLAG_ACTIVITY_NEW_TASK и startActivityForResult. CameraActivity имеет фрагмент, который открывает пользовательскую камеру. Я дал кнопку для захвата изображения. Если пользователь нажимает на кнопку, вызывается обратный вызов камеры, и в onPictureTaken(byte[] data) Я пишу массив данных в файле изображения и заканчивая активностью, используя getActivity().finish() и возвращающий путь файла изображения до HomeActivity и показывая его в пользовательском интерфейсе.Пользовательская CameraActivity отображается на экране даже после вызова finish()

Теперь проблема:

Когда я звоню getActivity().finish() из фрагмента в CameraActivity, он вызывает onActivityResult из HomeActivity. Путь показан на TextView. Журналы также правильно печатаются от HomeActivity. Но на Screen Camera работает. Каждый раз при нажатии на кнопку возврата нажимается до конца CameraActivity. Предположим, что я захватываю изображение на этот раз, но поскольку на экране камеры все еще работает, я попытался захватить его дважды, элемент управления вернулся на HomeActivity, но onActivityResult() не вызывается для второго захвата.

ответ

1

Как я использовал фрагменты в Activity, когда произошли изменения конфигурации, активность перезапущена и добавлен новый экземпляр фрагмента, из-за которого он продолжал показывать незавершенный фрагмент на экране. Я решил эту проблему, отделив фрагмент от изменения конфигурации.

4

Отладить код. Я думаю, startActivityForResult вызывается несколько раз.

+0

Нет Я печатал журналы в startActivityForResult. Они печатаются только один раз. Это для первого вызова –