本地广播LocalBroadcastManager简单使用

来源:互联网 发布:网络电影如何盈利 编辑:程序博客网 时间:2024/05/16 15:14
/** * 由于系统的全局广播可以被任何应用程序接收到,并且我们也可以接收来自任何程序的广播 * 这样很容易引起安全问题,因此Google引入的本地广播LocalBroadcastManager */public class MainActivity extends AppCompatActivity {    private Button                mBtnSend;    private LocalBroadcastManager mLocalBroadcastManager;    private MyReceiver            myReceiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mBtnSend = (Button) findViewById(R.id.btn_send_broadcast);        //1.获取 LocalBroadcastManager实例对象        mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);        mBtnSend.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // 2.使用Intent传递数据给广播接收器                Intent intent = new Intent("我给你发一条广播,注意接收!");                //3.发送本地广播                mLocalBroadcastManager.sendBroadcast(intent);            }        });        /**         * 接下来就类似于动态注册广播的方式         */        //4.创建IntentFilter对象        IntentFilter intentFilter = new IntentFilter();        //5.添加action(也就是广播接收器想要监听什么广播)        intentFilter.addAction("我给你发一条广播,注意接收!");        //6.创建广播接受器的实例对象        myReceiver = new MyReceiver();        //7.注册本地广播监听器        mLocalBroadcastManager.registerReceiver(myReceiver, intentFilter);    }    @Override    protected void onDestroy() {        super.onDestroy();        //8.Activity销毁的时候取消注册广播接受器        mLocalBroadcastManager.unregisterReceiver(myReceiver);    }    /**     * 创建广播接收器     */    class MyReceiver extends BroadcastReceiver {        //当广播到来的手onReceive方法就会得到执行,具体的逻辑就在这个方法里处理        @Override        public void onReceive(Context context, Intent intent) {            Toast.makeText(MainActivity.this, "广播接收器接收到广播了!", Toast.LENGTH_SHORT).show();        }    }}
1 0
原创粉丝点击