美文网首页
Android基础知识:Broadcast Receiver(3

Android基础知识:Broadcast Receiver(3

作者: JYangkai | 来源:发表于2019-01-02 20:54 被阅读0次

    废话

    我们知道,普通的广播在发出后,任何应用都可以收到,前提是注册了此广播,但是,当我们需要在发送广播携带私密数据的时候,普通广播就不适用了,Android的开发工程师们也考虑到了这一点,所有就有了本地广播,其实我觉得叫应用内广播更合适点,因为本地广播只是在本应用中发送和接收,这样就保证了安全性,下面我们就来一起学习下如何使用本地广播吧

    创建一个本地广播

    我们新建一个MainActivity,并在里面新建一个广播

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        class myBroadcastReceiver extends BroadcastReceiver{
    
            @Override
            public void onReceive(Context context, Intent intent) {
    
            }
        }
    }
    

    接下来我们来注册本地广播,本地广播和普通广播一般,只是注册方式和发送方式不同

    注册

    localBroadcastManager.registerReceiver(mMyBroadcastReceiver,intentFilter);
    

    发送

    Intent intent=new Intent("本地广播");
    localBroadcastManager.sendBroadcast(intent);
    

    解注册

    localBroadcastManager.unregisterReceiver(mMyBroadcastReceiver);
    

    我来修改MainActivity.java

    public class MainActivity extends AppCompatActivity {
    
        private LocalBroadcastManager localBroadcastManager;
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            localBroadcastManager=LocalBroadcastManager.getInstance(this);
    
            myBroadcastReceiver mMyBroadcastReceiver = new myBroadcastReceiver();
            IntentFilter intentFilter = new IntentFilter();
            intentFilter.addAction("本地广播");
            localBroadcastManager.registerReceiver(mMyBroadcastReceiver,intentFilter);
    
            registerReceiver(mMyBroadcastReceiver, intentFilter);
        }
    
        class myBroadcastReceiver extends BroadcastReceiver {
    
            @Override
            public void onReceive(Context context, Intent intent) {
    
            }
        }
    }
    

    这样我们就完成了本地广播的创建

    我们创建本地广播是为了安全,这样我们就只是在本地发送和接收广播,其他恶意程序就不能轻易窃取我们的数据。

    相关文章

      网友评论

          本文标题:Android基础知识:Broadcast Receiver(3

          本文链接:https://www.haomeiwen.com/subject/yitbkqtx.html