android broadcastReceiver学习

来源:互联网 发布:linux nano 怎样保存 编辑:程序博客网 时间:2024/06/03 21:25
package com.weilian.broadcasts20160318;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.support.v4.content.LocalBroadcastManager;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends ActionBarActivity {    private LocalBroadcastManager localBroadcastManager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        IntentFilter intentFilter = new IntentFilter();        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");//添加监听的动作        NetworkChangReceiver networkChangReceiver = new NetworkChangReceiver();        registerReceiver(networkChangReceiver,intentFilter);//注册广播        Button b = (Button) findViewById(R.id.btn_sendbroadcast);        Button l = (Button) findViewById(R.id.btn_sendbroadcastlocal);        b.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent("com.weipeng.broadcasts20160318");                sendBroadcast(intent);            }        });        localBroadcastManager = LocalBroadcastManager.getInstance(this);        IntentFilter intentFilterlocal = new IntentFilter();        intentFilterlocal.addAction("com.weipeng.broadcasts20160318");//添加动作        localBroadcastManager.registerReceiver(new LocalReceiver(),intentFilterlocal);//注册本地广播        l.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent("com.weipeng.broadcasts20160318");                localBroadcastManager.sendBroadcast(intent);            }        });    }    class LocalReceiver extends BroadcastReceiver{        @Override        public void onReceive(Context context, Intent intent) {            Toast.makeText(context,"本地广播",Toast.LENGTH_LONG).show();        }    }    class NetworkChangReceiver extends BroadcastReceiver{        @Override        public void onReceive(Context context, Intent intent) {            ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();            if(networkInfo != null && networkInfo.isAvailable()){                Toast.makeText(context,"有网",Toast.LENGTH_LONG).show();            }else{                Toast.makeText(context,"无网",Toast.LENGTH_LONG).show();            }        }    }}

0 0