美文网首页
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