I would like to implement a broadcast receiver to check my internet connection. If there is no connection, just end (); It. But I still messed up the context. Please check my codes below.
public class ConnectionDetector extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,false); if(noConnectivity){ ((Activity)context).finish();
AndroidManifest
<receiver android:name=".ConnectionDetector" android:label="NetworkConnection"> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter> </receiver>
LogCat:
11-01 22:40:29.179: E/AndroidRuntime(29531): FATAL EXCEPTION: main 11-01 22:40:29.179: E/AndroidRuntime(29531): java.lang.RuntimeException: Unable to start receiver in.wptrafficanalyzer.actionbarsherlocknavtab.ConnectionDetector: java.lang.ClassCastException: android.app.ReceiverRestrictedContext 11-01 22:40:29.179: E/AndroidRuntime(29531): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1809) 11-01 22:40:29.179: E/AndroidRuntime(29531): at android.app.ActivityThread.access$2400(ActivityThread.java:117) 11-01 22:40:29.179: E/AndroidRuntime(29531): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:985) 11-01 22:40:29.179: E/AndroidRuntime(29531): at android.os.Handler.dispatchMessage(Handler.java:99) 11-01 22:40:29.179: E/AndroidRuntime(29531): at android.os.Looper.loop(Looper.java:130) 11-01 22:40:29.179: E/AndroidRuntime(29531): at android.app.ActivityThread.main(ActivityThread.java:3691) 11-01 22:40:29.179: E/AndroidRuntime(29531): at java.lang.reflect.Method.invokeNative(Native Method) 11-01 22:40:29.179: E/AndroidRuntime(29531): at java.lang.reflect.Method.invoke(Method.java:507) 11-01 22:40:29.179: E/AndroidRuntime(29531): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) 11-01 22:40:29.179: E/AndroidRuntime(29531): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) 11-01 22:40:29.179: E/AndroidRuntime(29531): at dalvik.system.NativeStart.main(Native Method) 11-01 22:40:29.179: E/AndroidRuntime(29531): Caused by: java.lang.ClassCastException: android.app.ReceiverRestrictedContext 11-01 22:40:29.179: E/AndroidRuntime(29531): at in.wptrafficanalyzer.actionbarsherlocknavtab.ConnectionDetector.onReceive(ConnectionDetector.java:29) 11-01 22:40:29.179: E/AndroidRuntime(29531): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1798) 11-01 22:40:29.179: E/AndroidRuntime(29531): ... 10 more
source share