Чи можна дізнатися, чи якась діяльність була викликана для результату, використання startActivityForResult()
чи лише почала використовувати startActivity()
?
Мені потрібно контролювати це, якщо це вимагає результату, поведінка буде іншою.
Відповіді:
Коли ваша діяльність була розпочата тільки по методу цільової активності повернеться .startActivity()
getCallingActivity()
null
Коли він був викликаний, startActivityForResult()
він поверне назву виклику діяльності.
Див. Документи для getCallingActivity()
:
Поверніть ім'я діяльності, яка викликала цю активність. Це те, кому
setResult()
будуть надіслані дані. Ви можете використовувати цю інформацію, щоб підтвердити, що одержувач має право отримувати дані.Примітка: якщо виклик не очікує результату (тобто він не використовував
startActivityForResult(Intent, int)
форму, що містить код запиту), тоді виклик пакету буде нульовим.Повернення
ComponentName діяльності, яка отримає вашу відповідь, або значення null, якщо ні.
getActivity().startActivityFor…
з фрагмента, який вам потрібно зробити startActivityForResult
безпосередньо.