BroadcastReceiver广播事件
来源:互联网 发布:网络封包登入 编辑:程序博客网 时间:2024/04/29 09:45
1、广播有两种注册配置方法:
第一种:在代码中配置注册广播`IntentFilter inf = new IntentFilter();inf.addAction("cm.example.android5module_broadcastreceiver_action");registerReceiver(new ActivityReceiver(), inf);//注册接收器registerReceiver(br, inf);//注册接收器
第二种:在配置文件中配置广播
<receiver android:name=".ActivityReceiver" > <intent-filter > <action android:name="cm.example.android5module_broadcastreceiver_action"/> </intent-filter></receiver>
`
2、发送广播:
`
Intent intent = new Intent();intent.setAction("cm.example.android5module_broadcastreceiver_action");sendBroadcast(intent);
3、MainActivity代码如下:
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.os.Handler;import android.os.Message;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity { Button bt; TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt = (Button)this.findViewById(R.id.button); tv = (TextView)this.findViewById(R.id.textview); //处理广播发过来的数据 ActivityReceiver.handler = new Handler(){ public void handleMessage(Message msg) { if(msg.what == 0x112){ tv.append(msg.obj.toString()); } } }; //广播做出的反应,也可单独放在一个类中。放在本类中只能为代码配置的广播做出反应。因为配置文件里配置的广播要求是单独的类。 final BroadcastReceiver br = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals("cm.example.android5module_broadcastreceiver_action")){ String str = "Yes"; Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show(); } } }; bt.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { //第一种:代码中注册广播 IntentFilter inf = new IntentFilter(); inf.addAction("cm.example.android5module_broadcastreceiver_action"); registerReceiver(new ActivityReceiver(), inf);//注册接收器 registerReceiver(br, inf);//注册接收器 //第二种:在配置文件Manifest.xml中配置receiver /* * <receiver android:name=".ActivityReceiver" > <intent-filter > <action android:name="cm.example.android5module_broadcastreceiver_action"/> </intent-filter> </receiver> * */ //发送广播 Intent intent = new Intent(); intent.setAction("cm.example.android5module_broadcastreceiver_action"); sendBroadcast(intent); } }); }}
4、ActivityReceiver代码如下:
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Handler;import android.os.Message;public class ActivityReceiver extends BroadcastReceiver{ public static Handler handler; @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equals("cm.example.android5module_broadcastreceiver_action")){ Message msg = new Message(); msg.what = 0x112; msg.obj = "alreadyreceiver"; handler.sendMessage(msg); } }}
5、activity_main.xml如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" android:text="发送广播" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" android:id="@+id/textview" /></LinearLayout>
`
0 0
- BroadcastReceiver广播事件
- android-->BroadcastReceiver(深入理解广播事件)
- BroadcastReceiver广播事件处理之自定义
- BroadcastReceiver广播事件处理之系统的
- Android-->BroadcastReceiver(深入理解广播事件)
- BroadcastReceiver广播
- BroadcastReceiver广播
- 广播BroadcastReceiver
- BroadcastReceiver--广播
- 广播BroadcastReceiver
- 广播BroadcastReceiver
- 广播 BroadcastReceiver
- 广播BroadcastReceiver
- 广播BroadcastReceiver
- 广播BroadcastReceiver
- 广播BroadCastReceiver
- android4.2关于BroadcastReceiver获取短信广播事件问题
- 广播接收者(BroadcastReceiver)
- USB转串口驱动代码分析
- idea常用快捷键
- Inverse = true,cascade=all
- Graphics2D & Shape - 绘制2D图形
- visual leak使用
- BroadcastReceiver广播事件
- CSS选择器笔记
- ffmpeg 移植到 android---阿冬
- 宁愿睡地板,也要做老板
- android listview 异步加载图片并防止错位
- MySQL多行查询结果集合并
- 头像上传以及之前预览再以及剪裁——javaweb版本
- javascript日期格式相减,计算出天数
- Codeforces Round #284 (Div. 1) B. Name That Tune(概率DP)(难)