我正在一個服務內部實施廣播接收器,該服務應該是監聽互聯網連接的可用性。該服務從應用程序的主要活動開始。問題是廣播監聽器實際上並沒有聽任何東西。我的代碼是:從服務的互聯網連接的廣播接收器
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