我有一个后台服务,它有一个连接器用于连接更改,只有在活动处于活动状态时才会收到。
@Override
public void onCreate() {
mContext = this;
IntentFilter connectivityChangeFilter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(receiver, connectivityChangeFilter);
我已在清单中设置如下:
<service
android:name="com.myservice.TimeService"
android:label="com.myservice.TimeService" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</service>
我有另一个用于启动的接收器,它工作正常,在清单中注册为接收器(与此不同)。
意图过滤器是否不足以运行广播?我希望接收者在服务上调用一个方法,因此它需要能够访问服务的方法,但我不认为接收者可以绑定到服务。
- 更新 简而言之,我想知道我是否可以静态声明与服务交互的接收器。仅当应用程序处于活动状态时,动态声明才有效。
答案 0 :(得分:0)
系统发送和处理后,普通广播Intent不再可用。如果你使用sendStickyBroadcast(Intent)方法,那么意图是粘性的,这意味着你发送的意图在广播完成后保持不变。
示例代码here: