Ich habe eine Klasse, die überprüft, ob das Internet angeschlossen ist, während meine Anwendung läuft:Prüfen der Internetverbindung mit Broadcast-Receiver funktionieren nicht
public class NetworkChangeReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
if (isConnected){
Toast.makeText(context, "CONNECTED!", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(context, "NOT CONNECTED", Toast.LENGTH_LONG).show();
}
}}
ich diesen Empfänger in meiner Manifest-Datei hinzugefügt, in zwischen den Anwendungs Klammern
<receiver
android:name=".DataHelpers.NetworkChangeReciever"//DataHelpers is the package name
android:label="NetworkChangeReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
Jetzt bin ich ein bisschen verwirrt. Wenn ich meine App, die auf das Internet angewiesen ist, benutze und die Verbindung abbringe, sollte ich keine Toast-Nachricht mit dem Betreff "Connected!" Erhalten? Sollte der Empfänger nicht erkennen, dass keine Verbindung besteht und die onReceive() Methode in meiner NetworkChangerReciever Klasse auslösen? Was fehlt mir hier? Vielen Dank.
haben Sie Ihren Receiver auf die Aktivität des onResume registrieren? – rafsanahmad007
Nein, wie mache ich das? Könntest du eine Antwort schreiben? Ich dachte Registrierung bedeutete nur, es in die Manifest-Datei aufzunehmen? –