мне очень странно, что мне нужен контекст для передачи намерения.
sendBroadcast()
на Context
для устройства -уровнятрансляций.Такие звонки транслируются для каждого приложения на устройстве.
Это не то, что вам нужно.
Для меня Намерение должно быть просто сообщением, которое я отправляю и волшебным образомполучает от любых приемников вещания, которые я зарегистрировал где-либо в моем приложении.
То, что вы описываете, это шина событий в процессе.LocalBroadcastManager
реализует один , хотя для него тоже требуется Context
(возможно, связано с попыткой использовать основной поток приложения; я забыл причину).Существуют и другие реализации шины событий, такие как EventBus для greenrobot, которые не требуют Context
.
. Можете ли вы описать ситуацию, когда context1.broadcastIntent (намерение) и context2.broadcastIntent (намерение)) будет иметь разные эффекты?
Что ж, поскольку Context
является интерфейсом, нет необходимости в двух Context
объектах для совместного использования реализации общего метода.Однако для Context
нет метода broadcastIntent()
.
В общем, хотя Context
является божественным объектом.Одна из причин, по которой многие вещи проходят через Context
, заключалась в том, что «божественный» контекстный объект был популярным шаблоном проектирования еще в середине 2000-х годов, когда впервые разрабатывался Android.