温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

《第一行代码》5章 动态注册监听网络变化

发布时间:2020-05-09 18:02:35 来源:网络 阅读:766 作者:清水禅石 栏目:移动开发

注意:

  1. 需要在配置文件中 增加访问网络的权限

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

  2. 主要就是重写onReceiver();首先需要注册

  3. 增加几个新类:BroadcastReceiver

    package com.example.broadcasttest;

    import android.app.Activity;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.os.Bundle;
    import android.widget.TextView;
    import android.widget.Toast;

    public class MainActivity extends Activity {
        private IntentFilter intentFilter;
        private NetworkChangeReceiver networkChangeReceiver;
        private TextView textView;
        @Override
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            intentFilter = new IntentFilter();
            intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
            networkChangeReceiver = new NetworkChangeReceiver();
            registerReceiver(networkChangeReceiver,intentFilter);//注册广播接收器,接收CONNECTIVITY_CHANGE这个广播
            textView=(TextView) findViewById(R.id.tv);
        }
        @Override
        protected void onDestroy(){
            super.onDestroy();
            unregisterReceiver(networkChangeReceiver);
        }
        class NetworkChangeReceiver extends BroadcastReceiver{
            @Override
            public void onReceive(Context context,Intent intent){
            //    Toast.makeText(context, "network changes", Toast.LENGTH_LONG).show();
                //Log.d("demo","networkchanges");
            //    textView.setText("netWorkChanges");
                ConnectivityManager connectionManager=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);//
                NetworkInfo networkInfo=connectionManager.getActiveNetworkInfo();
                if (networkInfo != null && networkInfo.isAvailable()){
                    Toast.makeText(context, "network is available", Toast.LENGTH_LONG).show();
                }else {
                    Toast.makeText(context, "network is unavailable", Toast.LENGTH_SHORT).show();
                }
                
            }
        }

    }


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI