Android学习之发送及接收广播及本地广播
来源:互联网 发布:网络大电影审批 编辑:程序博客网 时间:2024/05/16 15:20
1、使用标准广播
1.1 定义广播接收器
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
String string=arg1.getStringExtra("data");
Toast.makeText(arg0, "received:"+string, Toast.LENGTH_SHORT).show();
}
}
1.2 修改AndriodManifest.xml,注册广播接收器
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.broadcastreceiverdemo.BROADCAST"></action>
</intent-filter>
</receiver>
1.3 补充MainActivity代码
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent("com.example.broadcastreceiverdemo.BROADCAST");
intent.putExtra("data", "hello");
sendBroadcast(intent);
}
});
}
}
2、使用本地广播
本地广播只能够在应用程序的内部进行传递,并且广播接收器也只能接收来自本应用程序发出的广播,这样就提高了数据传播的安全性。但本地广播无法通过静态注册的方式来接收。本地广播使用LocalBroadcastManager来对广播进行管理,并提供了发送广播及注册广播接收器的方法。
//定义广播接收器
public class LocalReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
String string=arg1.getStringExtra("data");
Toast.makeText(arg0, "received:"+string, Toast.LENGTH_SHORT).show();
}
}
//MainActivity
public class MainActivity extends Activity {
private IntentFilter intentFilter;
private LocalReceiver localReceiver;
private LocalBroadcastManager localBroadcastManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter=new IntentFilter("com.example.localbroadcastdemo.LOCALBROADCAST");
localReceiver=new LocalReceiver();
//获取实例
localBroadcastManager=LocalBroadcastManager.getInstance(this);
//注册本地广播监听器
localBroadcastManager.registerReceiver(localReceiver, intentFilter);
Button button=(Button)findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent("com.example.localbroadcastdemo.LOCALBROADCAST");
intent.putExtra("data", "hello");
//发送本地广播
localBroadcastManager.sendBroadcast(intent);
}
});
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
localBroadcastManager.unregisterReceiver(localReceiver);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
转载自http://www.cnblogs.com/zhouhb/p/4176678.html
- Android学习之发送及接收广播及本地广播
- android接收adb发送的系统广播及自定义广播
- Broadcast 广播发送及接收
- Broadcast 广播发送及接收
- Android--广播发送者及广播接收者
- Android广播之发送自定义广播+本地广播(二)
- BroadcastReceiver发送广播及接收简单实现
- Broadcast 广播 的接收 和发送 -- Android 学习之路
- Android发送本地广播
- android 发送广播 接收广播 动态广播接收
- Android发送广播与接收广播
- android 广播发送和接收
- android发送和接收广播
- Android自定义发送本地广播
- 发送广播和接收广播
- Android学习之本地广播的使用
- 初学Android,BroadcastReceiver之发送接收广播(七十)
- Android之广播(本地广播)
- Spark通过mapPartitions方式加载Json文件,提高文件加载速度
- 统一的分布式数据库和文件系统,及利用mysqlfs解决aliyun上做站的存储成本难题
- css媒体查询与导航栏
- SparseCoding(1)_金字塔匹配核函数(The Pyramid Match Kernel)
- openocd 下载程序到32开发板学习笔记
- Android学习之发送及接收广播及本地广播
- hibernate单表操作
- android webView setWebChromeClient and setWebClient
- 我想搞个网站
- android侧滑菜单整理(一)
- 【寒假任务】 洛谷1051 谁拿了最多奖学金
- Nexus 私服上传文件,并通过 Gradle 引用
- HDU-2055(水题)
- ASP.NET开发实战精品源码及视频教程下载