私のアプリでは、インターネット接続を継続的にチェックしています。任意の時点でインターネットがない場合、ユーザーはトースト メッセージを受け取ります。
このために、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");
}
}
}
エラー:
タイプ BroadcastReceiver の抽象メソッド onReceive(Context, Intent) を直接呼び出すことはできません
これは、アプリケーション内の 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);
ですか?どうすれば解消できますか?