Казалось бы: что такого сложного в Intent ?

Но есть нюансы. Объявляется Intent, вызывается startActivity с ним и всё. Ну или с добавлением extra. Тоже несложно. Или нет?

Во второй activity забираем:

И всё. Но! Сколько же тут подводных камней. Во-первых, можно допустить ошибку в написании имени ключа, хотя эту проблему можно устранить с помощью констант. Но во-вторых, можно изменить количество или тип передаваемых параметров в одной из activity и забыть поменять их в другой (или пятой, мало ли, сколько их там вызывает эту SomeActivity — одну обязательно забудешь). Тут стоит использовать приём, при котором вызываемая activity сама знает, как её нужно вызывать и какие параметры ей требуются:

Теперь эта SomeActivity имеет метод getCallingIntent, который принимает context и все параметры, которые ей требуются. Возвращает он готовый intent. Вызывая такой метод из первой activity, никак невозможно пропустить какой-то параметр или указать неверный ключ, такой неправильный код просто не скомпилируется. Вот как теперь выглядит вызов:

Проще простого!

Добавить комментарий

Закрыть меню