zoukankan      html  css  js  c++  java
  • Android 网络状态变化的监听

    1.在流量网页,时实现断网,提醒等功能。

     需要权限

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

    2.注册一个BroadcastReceiver来接受网络状态的变化

    public class NetworkChange extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            ConnectivityManager connectivityManager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
            NetworkInfo wifiinfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            if(!networkInfo.isConnected()&&!wifiinfo.isConnected()){
    
                /**
                 *
                 */
                Toast.makeText(context,"网络不可用!",Toast.LENGTH_SHORT).show();
    
            }else{
                if(wifiinfo.isConnected()){
                    Toast.makeText(context,"wifi连接中!",Toast.LENGTH_SHORT).show();
    
                }
                if(networkInfo.isConnected()){
                    Toast.makeText(context,"流量连接中!",Toast.LENGTH_SHORT).show();
    
                }
            }
    
        }
    }

    3.在activity总注册接收器即可:

    public class MainActivity extends AppCompatActivity {
    
       private IntentFilter intentFilter;
        private NetworkChange networkChange;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            /**
             * 监听网络状态
             */
            intentFilter=new IntentFilter();
            intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
            networkChange=new NetworkChange();
            registerReceiver(networkChange,intentFilter);
         
        }
    
     /**
         * 动态注册接受者,记得取消注册
         */
        @Override
        protected void onDestroy() {
            super.onDestroy();
            unregisterReceiver(networkChange);
        }
    }
    今天多一点积累,明天少一分烦恼
  • 相关阅读:
    吐槽下博客园
    关于爱情
    CCD 驱动 时序理解
    写在博客的第一天
    51单片机最小系统
    swing之登陆功能
    TDSQL | 在整个技术解决方案中HTAP对应的混合交易以及分析系统应该如何实现?
    TDSQL | 深度解读HTAP系统的问题与主义之争
    硬核干货!TDSQL全局一致性读技术详解|
    35w奖金池,腾讯云TDSQL精英挑战赛等你来战!
  • 原文地址:https://www.cnblogs.com/galibujianbusana/p/6398125.html
Copyright © 2011-2022 走看看