在我AndroidManifest.xml中,我有以下...IntentService無法接收網絡狀態改變的意圖
<service
android:name=".MyIntentService" >
<intent-filter>
<action android:name="android.net.wifi.STATE_CHANGE" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />"
<action android:name="com.mycompany.myapp.TEST" />
</intent-filter>
</service>
<receiver
android:name=".MyNetworkMonitor" >
<intent-filter>
<action android:name="android.net.wifi.STATE_CHANGE" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />"
</intent-filter>
</receiver>
理想情況下,我想了IntentService爲「喚醒」並解釋由廣播的意圖(S)系統,無論是Wi - Fi或移動互聯網服務改變國家......但它沒有。
的廣播接收器確實然而收到意圖,我可以得到它發送廣播意圖(com.mycompany.myapp.TEST
)來喚醒我IntentService,並告訴它出現了網絡狀態的變化。
所以問題是,爲什麼我的IntentService不會從系統意圖中喚醒來通知網絡狀態的變化,而是會從我的BroadcastReceiver的廣播中喚醒。困惑。
編輯:這就是你在近5點(oops)試圖編碼的結果。出於某種原因,我認爲com.mycompany.myapp.TEST
的意圖是作爲一個廣播。
什麼我實際上做的是Intent i = new Intent ("com.mycompany.myapp.TEST")
,然後用startService(i)
這工作,因爲<intent-filter>
條目(即使沒有在意向明確指定MyIntentService.class
)的。這是令人困惑的問題。
感謝您澄清我無法使用廣播啓動服務。看到我的編輯結束我的問題,解釋爲什麼我感到困惑。 – Squonk 2011-04-17 19:00:58