我正在一个服务内部实施广播接收器,该服务应该是监听互联网连接的可用性。该服务从应用程序的主要活动开始。问题是广播监听器实际上并没有听任何东西。我的代码是:从服务的互联网连接的广播接收器
public class MyService extends Service {
public final static String SEND_DATA_BROADCAST = "com.myapp.SEND_DATA";
private final static String LOG_TAG="-Service-";
private BroadcastReceiver updateListener;
@Override
public void onCreate()
{
super.onCreate();
//create listener
final IntentFilter theFilter = new IntentFilter();
theFilter.addAction(SEND_DATA_BROADCAST);
this.updateListener = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Do whatever you need it to do when it receives the broadcast
// Example show a Toast message...
Log.d(LOG_TAG,"Listening..");
}
};
// register listener
Log.d(LOG_TAG,"Registering Listener");
this.registerReceiver(this.updateListener, theFilter);
listenerRegistered = true;
Log.d(LOG_TAG,"Listener Registered");
}
我甚至没有从logcat得到任何东西来暗示监听器实际上做了些什么。 – JustCurious
所以你说它永远不会收到SEND_DATA_BROADCAST?这是什么时候发送的?你确定你的服务即将开始吗?您已将其设置为自定义字符串,因此它不是系统广播的事件。这些列表可以在这里找到:http://developer.android.com/reference/android/content/Intent.html – elevine
你也可能对这个类中的一些广播常量感兴趣:http:// developer。 android.com/reference/android/net/ConnectivityManager.html – elevine