• Android 监控网络状态


    Html代码
    1. public static boolean isNetworkAvailable(Context context) {  
    2.         ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);  
    3.         if (connectivity == null) {  
    4.             Log.i("NetWorkState", "Unavailabel");  
    5.             return false;  
    6.         } else {  
    7.             NetworkInfo[] info = connectivity.getAllNetworkInfo();  
    8.             if (info != null) {  
    9.                 for (int i = 0; i info.length; i++) {  
    10.                     if (info[i].getState() == NetworkInfo.State.CONNECTED) {  
    11.                         Log.i("NetWorkState", "Availabel");  
    12.                         return true;  
    13.                     }  
    14.                 }  
    15.             }  
    16.         }  
    17.         return false;  
    18.     }  



    上面这个方法就是判断网络是否连接的代码,返回true表示有网络,返回false表示无网络。 在Android网络应用程序开发中,经常要判断网络连接是否可用,因此经常有必要监听网络状态的变化。android的网络状态监听可以用 BroadcastReceiver来接收网络状态改变的广 播,具体实现如下:

    Html代码
    1. @Override  
    2. public void onReceive(Context context, Intent intent) {  
    3. Log.e(TAG, "网络状态改变");  
    4.   
    5. boolean success = false;  
    6.   
    7. //获得网络连接服务  
    8. ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);  
    9. // State state = connManager.getActiveNetworkInfo().getState();  
    10. State state = connManager.getNetworkInfo(  
    11. ConnectivityManager.TYPE_WIFI).getState(); // 获取网络连接状态  
    12. if (State.CONNECTED == state) { // 判断是否正在使用WIFI网络  
    13. success = true;  
    14. }  
    15.   
    16. state = connManager.getNetworkInfo(  
    17. ConnectivityManager.TYPE_MOBILE).getState(); // 获取网络连接状态  
    18. if (State.CONNECTED != state) { // 判断是否正在使用GPRS网络  
    19. success = true;  
    20. }  
    21.   
    22. if (!success) {  
    23. Toast.makeText(LocationMapActivity.this, "您的网络连接已中断", Toast.LENGTH_LONG).show();  
    24. }   
    25.   
    26. }  


    在Activity的onCreate中:

    Html代码
      1. //注册网络监听  
      2. IntentFilter filter = new IntentFilter();   
      3. filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);  
      4. registerReceiver(mNetworkStateReceiver, filter);  
      5. //在Activity中的onDestroy中:'  
      6.   
      7. unregisterReceiver(mNetworkStateReceiver); //取消监听 
  • 相关阅读:
    java8时间处理
    HttpServletRequest
    Elasticsearch简介
    springCloud-Alibaba--Sentinel
    Nacos集群部署:
    nginx安装配置
    hibernate 嵌套事务
    linux下cmake安装mysql 源码
    linux下中文乱码问题解决
    tomcat quartz 被触发两次
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/3858839.html
Copyright © 2020-2023  润新知