android метод - Проверьте, была ли операция вызвана для результата




onactivityresult startactivityforresult (2)

Возможно ли узнать, вызвана ли какая-либо активность для результата, используя startActivityForResult() или если был запущен только с помощью startActivity() ?

Мне нужно контролировать это, если его вызвали на результат, поведение будет другим.


Answers

Когда ваша активность была запущена с помощью startActivity() getCallingActivity() метод getCallingActivity() в целевой активности вернет значение null .

Когда он был вызван startActivityForResult() он вернет имя вызывающей активности.

См. Документы для getCallingActivity() :

Верните имя активности, которая вызвала это действие. Это тот, setResult() будут отправляться данные в setResult() . Вы можете использовать эту информацию, чтобы подтвердить, что получателю разрешено получать данные.

Примечание: если вызывающая активность не ожидает результата (то есть она не использует startActivityForResult(Intent, int) которая включает код запроса), тогда вызывающий пакет будет иметь значение null.

Возвращает

Имя компонента для действия, которое получит ваш ответ, или null, если оно отсутствует.


По-моему, это не очень актуально. Ключевым фактором, который следует учитывать, является

  1. как часто вы собираетесь повторно использовать части пользовательского интерфейса (например, меню),
  2. это приложение также для планшетов?

Основное использование фрагментов - это создание многопользовательской активности, что делает ее идеальной для приложений с поддержкой Tablet / Phone.





android android-activity result startactivityforresult