广播接收机(监听网络例子,记录一下方便使用)

    xiaoxiao2025-02-10  22

    public class MainActivity extends Activity { private IntentFilter intentfilter;// IntentFilter:意图过滤器。 private NetworkChangeReceier networkchangereceier; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentfilter = new IntentFilter(); intentfilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");// 想监听什么广播在这修改值即可。 networkchangereceier = new NetworkChangeReceier(); registerReceiver(networkchangereceier, intentfilter); } class NetworkChangeReceier extends BroadcastReceiver {// BroadcastReceiver:广播接收机。 @Override public void onReceive(Context context, Intent intent) {// 网络发生变化时就会调用这个方法。 ConnectivityManager connectivitymanager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);// ConnectivityManager:连接管理器。 NetworkInfo networkinfo = connectivitymanager .getActiveNetworkInfo(); // NetworkInfo:网络状态。 if (networkinfo != null && networkinfo.isAvailable()) {// isAvailable:是可用的,若连接则返回true。 Toast.makeText(context, "网络已连接", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(context, "网络已断开", Toast.LENGTH_SHORT).show(); } } } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(networkchangereceier); } }

    动态和静态都别忘了加权限:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    静态的用法如下:

    <!-- 网络监听 --> <receiver android:name="com.example.yuanmu.lunbo.Util.NetworkBroadcastReceiver" android:enabled="true" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>

    写一个接收类:

    package com.example.yuanmu.lunbo.Util; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.widget.Toast; /** * Created by Administrator on 2016/9/29 0029. */ public class NetworkBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectivitymanager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);// ConnectivityManager:连接管理器。 NetworkInfo networkinfo = connectivitymanager .getActiveNetworkInfo(); // NetworkInfo:网络状态。 if (networkinfo != null && networkinfo.isAvailable()) {// isAvailable:是可用的,若连接则返回true。 Toast.makeText(context, "网络已连接", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(context, "网络已断开", Toast.LENGTH_SHORT).show(); } } }

    转载请注明原文地址: https://ju.6miu.com/read-1296293.html
    最新回复(0)