热门IT资讯网

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

发表于:2024-11-28 作者:热门IT资讯网编辑
编辑最后更新 2024年11月28日,注意:需要在配置文件中 增加访问网络的权限主要就是重写onReceiver();首先需要注册增加几个新类:BroadcastReceiver,package com.example.broadcast

注意:

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


  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();
    }

    }
    }

    }


0