2013-04-07 2 views
2

В моем приложении я постоянно проверяю подключение к Интернету. Если в любой момент времени нет Интернета, пользователь получает сообщение с тостом.Android: BroadcastListner Получение ошибки

Для этого я делаю класс NetworkStateReceiver, который расширяет класс BroadcastReceiver.

Java файл:

public class NetworkStateReceiver extends BroadcastReceiver { 

    public void onReceive(Context context, Intent intent) { 
     super.onReceive(context, intent); // Here I'm getting the error mentioned below 
     Log.d("app", "Network connectivity change"); 
     if (intent.getExtras() != null) { 
      NetworkInfo ni = (NetworkInfo) intent.getExtras().get(
        ConnectivityManager.EXTRA_NETWORK_INFO); 
      if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) { 
       Log.i("app", "Network " + ni.getTypeName() + " connected"); 
      } 
     } 
     if (intent.getExtras().getBoolean(
       ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE)) { 
      Log.d("app", "There's no network connectivity"); 
     } 
    } 
} 

Ошибка:

Cannot directly invoke the abstract method onReceive(Context, Intent) for the type BroadcastReceiver

Это то, что я поместил в моем файле манифеста Android внутри приложения:

<application>  
    .... 
    <receiver android:name=".NetworkStateReceiver" > 
     <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
     </intent-filter> 
    </receiver> 
    .... 
</application> 

Это разрешение Я использовал:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" 

Почему я получаю эту ошибку в super.onReceive(context, intent);, и как я могу избавиться от нее?

+0

Вы не сказали нам об ошибке, которую вы получаете. Отправляйте трассировку стека из вашего Logcat, если ваша программа терпит крах, или сообщите нам, какое поведение вы наблюдаете в сравнении с тем, что вы ожидаете. – Karakuri

+0

@ Karakuri это не ошибка времени выполнения, это ошибка, которую я получаю в строке, в которой super.onReceive (контекст, намерение); написан в java-файле. –

+0

@ Karakuri Нет, он не работает. Я не могу видеть вывод файла журнала при изменении состояния подключения. –

ответ

3

Удалить строку super.onReceive(context, intent). Базовая реализация ничего не делает (это абстрактный метод).

 Смежные вопросы

  • Нет связанных вопросов^_^