0

我有一个后台服务,它有一个用于连接更改的接收器,只有在活动处于活动状态时才会收到该接收器。

@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>

我有另一个用于启动的接收器,它工作正常,它在清单中注册为接收器(与这个不同)。

意图过滤器是否不足以运行广播?我希望接收者调用服务上的方法,因此它需要能够访问服务的方法,但我不认为接收者可以绑定到服务。

-- 更新 简而言之,我想知道我是否可以静态声明一个与服务交互的接收器。动态声明仅在应用程序处于活动状态时才有效。

4

1 回答 1

0

使用android 粘性意图

正常的广播 Intent 在被系统发送和处理后不再可用。如果您使用 sendStickyBroadcast(Intent) 方法,则 Intent 是粘性的,这意味着您发送的 Intent 在广播完成后仍然存在。

示例代码在这里:

于 2012-12-12T11:23:06.807 回答