NetworkBroadcast.java:
package com.example.main
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.widget.Toast;
public class NetworkBroadcast extends BroadcastReceiver{
MainActivity mActivity;
public NetworkBroadcast(MainActivity mainActivity) {
mActivity = mainActivity;
}
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetworkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo dataNetworkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifiNetworkInfo.isConnected() && dataNetworkInfo.isConnected()) {
mActivity.init();
} else if (wifiNetworkInfo.isConnected() && !dataNetworkInfo.isConnected()) {
mActivity.init();
} else if (!wifiNetworkInfo.isConnected() && dataNetworkInfo.isConnected()) {
mActivity.init();
} else {
Toast.makeText(context, "网络已断开, 请检查网络", Toast.LENGTH_SHORT).show();
}
}
}
Main.java:
private NetworkBroadcast networkbroadcast;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (networkbroadcast == null) {
networkbroadcast = new NetworkBroadcast(this);
}
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(networkbroadcast, filter);
}
protected void onDestroy() {
unregisterReceiver(networkbroadcast);
};