我尝试实现网络接收器,这是我的以下代码:
package com.example.androidtablayout;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
public class NetworkReceiver extends BroadcastReceiver { // <1>
public static final String TAG = "NetworkReceiver";
boolean isConnected = true;
Context c;
@Override
public void onReceive(Context context, Intent intent) {
boolean isNetworkDown = intent.getBooleanExtra(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); // <2>
if (isNetworkDown) {
Log.d(TAG, "onReceive: NOT connected, stopping UpdaterService");
// context.stopService(new Intent(context, UpdaterService.class)); // <3>
} else {
Log.d(TAG, "onReceive: connected, starting UpdaterService");
// context.startService(new Intent(context, UpdaterService.class)); // <4>
}
}
}
在Manifest.xml中
<application>
<receiver android:name=".NetworkReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我的问题是当我关闭wifi时,日志仍显示“已连接”,
我认为网络接收器没有正确接收内联网连接。非常感谢任何帮助。
答案 0 :(得分:0)
Here是一个示例类,向您展示如何执行此操作。我认为这正是您所需要的,它可能有助于解决您的问题。在此示例中,BroadcastReceiver是以编程方式注册的,而不是Manifest,但我认为这对您来说不是问题。
如果有效,请告诉我。