ListView
2016-07-20 18:00
281 查看
Android广播机制就是在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。
在Activity中,注册广播的一个Demo。 总共分3步 第一步:定义一个BroadcastReceiver广播接收类: [java] view plain copy private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equals(ACTION_NAME)){ Toast.makeText(Test.this, "处理action名字相对应的广播", 200); } } }; 第二步:注册该广播: [java] view plain copy public void registerBoradcastReceiver(){ IntentFilter myIntentFilter = new IntentFilter(); myIntentFilter.addAction(ACTION_NAME); //注册广播 registerReceiver(mBroadcastReceiver, myIntentFilter); } 第三步:触发响应 [java] view plain copy mBtnMsgEvent = new Button(this); mBtnMsgEvent.setText("发送广播"); mBtnMsgEvent.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent mIntent = new Intent(ACTION_NAME); mIntent.putExtra("yaner", "发送广播,相当于在这里传送数据"); //发送广播 sendBroadcast(mIntent); } }); -----最后附上完整代码: [java] view plain copy package my.yaner; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; import android.widget.Toast; public class Test extends Activity{ private final String ACTION_NAME = "发送广播"; private Button mBtnMsgEvent = null; protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //注册广播 registerBoradcastReceiver(); LinearLayout mLinearLayout = new LinearLayout(this); mBtnMsgEvent = new Button(this); mBtnMsgEvent.setText("发送广播"); mLinearLayout.addView(mBtnMsgEvent); setContentView(mLinearLayout); mBtnMsgEvent.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent mIntent = new Intent(ACTION_NAME); mIntent.putExtra("yaner", "发送广播,相当于在这里传送数据"); //发送广播 sendBroadcast(mIntent); } }); } private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equals(ACTION_NAME)){ Toast.makeText(Test.this, "处理action名字相对应的广播", 200); } } }; public void registerBoradcastReceiver(){ IntentFilter myIntentFilter = new IntentFilter(); myIntentFilter.addAction(ACTION_NAME); //注册广播 registerReceiver(mBroadcastReceiver, myIntentFilter); } }
相关文章推荐
- [转载] 问题解决:FFmpeg视频编解码库,无法解析的外部信号
- 通过sql获得mysql的表结构
- 软件架构和设计
- div+css垂直居中显示
- 修改开源库Wheel后,能控制选中颜色及大小
- NYOJ-Color the fence
- 2016第一场多校赛
- 如何识别高级的验证码
- 73条日常Linux shell命令汇总
- Java如何读取Excel行列(getLastRowNum、getLastRowNum)
- 详解mysql建立索引的使用办法及优缺点分析
- 删除GitHub上repository里的某个文件
- [bzoj1562][NOI2009]变换序列(贪心+dfs/二分图最大匹配)
- codeforces水题100道 第十六题 Codeforces Round #164 (Div. 2) A. Games (brute force)
- sort与asort与ksort区别
- 响应式 和 移动 web
- Hive Hook类型
- HDU 2072 单词数 (map)
- 挑战程序设计解题报告 2.6.1辗转相除法
- MySQL索引数据结构及算法原理