废话
我们知道,普通的广播在发出后,任何应用都可以收到,前提是注册了此广播,但是,当我们需要在发送广播携带私密数据的时候,普通广播就不适用了,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) {
}
}
}
这样我们就完成了本地广播的创建
我们创建本地广播是为了安全,这样我们就只是在本地发送和接收广播,其他恶意程序就不能轻易窃取我们的数据。
网友评论