Проверьте, вызвана ли активность для результата
Можно ли узнать, была ли вызвана какая-либо активность для результата, используя startActivityForResult()
или если только начал использовать startActivity()
?
Мне нужно это контролировать, если его вызванный результат будет другим.
2 ответа
Когда ваша деятельность была начата только startActivity()
getCallingActivity()
метод в целевой деятельности вернется null
,
Когда он был вызван startActivityForResult()
вернет имя вызывающей деятельности.
Смотрите Документы для getCallingActivity()
:
Возвратите имя действия, которое вызвало это действие. Это кто данные в
setResult()
будет отправлен Вы можете использовать эту информацию для подтверждения того, что получателю разрешено получать данные.Примечание: если вызывающая деятельность не ожидает результата (то есть она не использовала
startActivityForResult(Intent, int)
форма, которая включает в себя код запроса), то вызывающий пакет будет нулевым.Возвращает
ComponentName действия, которое получит ваш ответ, или ноль, если его нет.
Вы можете проанализировать логическое значение, поместив extra внутри намерения.
//First Activity
Intent i = new Intent(FirstActivity.this, SecondActiviy.class);
boolean isForResult = true;
i.putExtra("for-result", isForResult);
Затем во втором действии получите значение:
//Second Activity
boolean isForResult = getIntent().getBooleanExtra("for-result" , false);
Таким образом, с помощью глобального логического значения вы узнаете, начинаете ли вы действие для получения результата. Если вы не добавите логическое значение, значение по умолчанию будет ложным. Что значит.
//Not necesary at all.
boolean isForResult = false;
Вам не нужно разбирать ложное логическое значение.