Android 为什么不是';不是静态方法吗?

Android 为什么不是';不是静态方法吗?,android,android-intent,android-context,Android,Android Intent,Android Context,我对安卓非常陌生。我试图基本上使用意图来构建一个事件系统,将意图从一个普通的旧Java对象激发到另一个充当事件处理程序的普通旧Java对象 从这个角度来看,我很奇怪,我需要一个上下文来传播一个意图。对我来说,意图应该是我发出的消息,然后神奇地被我在应用程序中注册的任何广播接收器接收 为什么广播意图是一种上下文方法,而不是一种“自由过程”(静态方法)?您能描述一下context1.broadcastIntent(intent)和context2.broadcastIntent(intent)会产生

我对安卓非常陌生。我试图基本上使用意图来构建一个事件系统,将意图从一个普通的旧Java对象激发到另一个充当事件处理程序的普通旧Java对象

从这个角度来看,我很奇怪,我需要一个上下文来传播一个意图。对我来说,意图应该是我发出的消息,然后神奇地被我在应用程序中注册的任何广播接收器接收

为什么广播意图是一种上下文方法,而不是一种“自由过程”(静态方法)?您能描述一下
context1.broadcastIntent(intent)
context2.broadcastIntent(intent)
会产生不同效果的情况吗

我很奇怪,我需要一个上下文来传播意图

Context
上的
sendBroadcast()
用于设备级广播。这种呼叫会广播到设备上的每个应用程序

这似乎不是你所需要的

对我来说,意图应该是我发出的消息,然后神奇地被我在应用程序中注册的任何广播接收器接收

您所描述的是进程内事件总线,尽管它也需要一个
上下文(可能与尝试使用主应用程序线程有关;我忘记了原因)。还有其他事件总线实现,例如greenrobot的EventBus,它们不需要
上下文

您能描述一下context1.broadcastIntent(意图)和context2.broadcastIntent(意图)会产生不同效果的情况吗

因为
Context
是一个接口,所以不需要两个
Context
对象共享一个公共方法实现。不过,在
上下文上没有
broadcastIntent()
方法

但是,一般来说,
上下文
是一个上帝对象。很多东西通过
Context
传递的部分原因是“Context”god对象在2000年代中期是一种流行的设计模式,当时Android刚刚被开发出来