【发布时间】:2011-04-18 04:17:12
【问题描述】:
在我的 AndroidManifest.xml 中,我有以下内容...
<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 在 wi-fi 或移动互联网服务更改状态时“唤醒”并解释系统广播的 Intent....但它没有。
但是,BroadcastReceiver 确实收到了 Intent,我可以让它发送一个广播 Intent (com.mycompany.myapp.TEST) 来唤醒我的 IntentService 并告诉它网络状态发生了变化。
所以问题是,为什么我的 IntentService 不会从通知网络状态变化的系统意图广播中唤醒,但它会从我的 BroadcastReceiver 的广播中唤醒。困惑。
编辑:这就是你在凌晨 5 点(哎呀)尝试编码的结果。出于某种原因,我认为 com.mycompany.myapp.TEST 意图正在作为广播工作。
我实际上在做的是Intent i = new Intent ("com.mycompany.myapp.TEST"),然后使用startService(i),这是因为<intent-filter> 条目(即使没有在意图中明确指定MyIntentService.class)。这就是令人困惑的问题。
【问题讨论】:
标签: android