活动未激活时会忽略Android接收器

时间:2012-12-12 11:10:44

标签: android android-service

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

使用android sticky intent

系统发送和处理后,普通广播Intent不再可用。如果你使用sendStickyBroadcast(Intent)方法,那么意图是粘性的,这意味着你发送的意图在广播完成后保持不变。

示例代码here: