Другое отличие, которое не упоминается в других ответах, заключается в том, что если вы используете анонимную функцию
var functionOne = function() {
// Some code
};
и используете это как конструктор, как в
var one = new functionOne();
, тогда one.constructor.name
не будет определено. Function.name
является нестандартным, но поддерживается Firefox, Chrome, другими браузерами, основанными на Webkit, и IE 9 +.
С помощью
function functionTwo() {
// Some code
}
two = new functionTwo();
можно получить имя конструктора как строки с two.constructor.name
.
startActivityForResult()
работает только с действиями, которые должны называться так. Если действие, которое вы вызываете, явно не возвращает результат, вы получите результат по умолчанию RESULT_CANCELED. Очевидно, ACTION_SEND
не предназначен для вызова таким образом. документация для ACTION_SEND
указывает, что не генерирует выход (т. Е. Не генерирует никакого результата).
См. Документацию для Activity.startActivityForResult()
:
Обратите внимание, что этот метод должен использоваться только с протоколами Intent, которые определены для возврата результата. В других протоколах (например, ACTION_MAIN или ACTION_VIEW) вы не можете получить результат, если ожидаете. Например, если действие, которое вы запускаете, использует режим запуска singleTask, оно не будет запускаться в вашей задаче и, следовательно, вы сразу получите результат отмены.
blockquote>
У меня такая же проблема, и я думаю, что результат будет всегда «отменен», потому что даже если отправлено письмо или нет, активность будет убита.