2012-12-12 106 views
0

我有一個後臺服務,它有一個連接更改的接收器,只有活動處於活動狀態時纔會收到接收器。當活動不活躍時,Android接收器被忽略

@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

使用android sticky intent

常規廣播意圖不可再後是有人發送和系統處理。如果您使用sendStickyBroadcast(Intent)方法,則Intent會變得粘滯,這意味着您要發送的Intent在廣播完成後仍處於停留狀態。

示例代碼here:

+0

謝謝,它很有趣,但不完全是我想要的。我不擔心廣播丟失,我只需要運行一種服務方法。 –

+0

可能是這篇文章的幫助:-http://stackoverflow.com/questions/8169749/send-message-from-activity-to-service-android –