android简单的⼴播事件处理
⼴播事件处理
⼀.Broadcast Receiver
⽐如打电话等等;
⼴播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别,⽽⼴播事件处理机制是系统级别。⼆.使⽤Broadcast Receiver
1.编写类继承BroadcaReceiver,复写onReceiver()⽅法
2.在l⽂件中注册BroadcaReceiver
快乐的生日3.构建Intent对象
4.调⽤ndBroadca()⽅法发送⼴播
三.BroadcaReceiver⽣命周期
BroadcastReceiver对象仅在调⽤onReceive()⽅法时有效,当该⽅法执⾏完毕后,系统认为销毁该对象。四.标准⼴播Action
五.注册Broadcast Receiver的⽅法
1.在l⽂件中进⾏注册//有缺陷,不会因为Activity被销毁⽽销毁,⼀般不⽤
//设置⼴播类型
这⾥可以设置action为短信什么的:(需要权限)
//短信
eceiver android:name="com.qmk.guangbo.Myguanbo">
android:name=""/>
拍照
2.在应⽤程序的代码中进⾏注册
注册BroadcastReceiver
registerReceiver()
取消注册BroadcastReceiver
unregisterReceiver()
实例1:
MainActivity.java
ample.guangbo;
import android.os.Bundle;
import android.app.Activity;
t.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
二胡谱import android.widget.Button;
public class MainActivity extends Activity {
private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
tContentView(/doc/1a80afbdf61fb7360b4c6595.html yout.activity_main);
btn1=(Button)findViewById(R.id.btn1);
btn1.tOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();//⼴播也是Intent来传递的intent.tAction("android.provider.Telephony.SMS_RECEIVED"); //设置action的值表⽰⼴播的类型,(name)
ndBroadcast(intent);//把intent传递过来
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is prent.
getMenuInflater().u.main, menu);
return true;
}
}
Myguanbo.java
package com.qmk.guangbo;
t.BroadcastReceiver;
t.Context;
t.Intent;
import android.util.Log;
public class Myguanbo extends BroadcastReceiver {
//写⼀个类继承BroadcastReceiver
private static final String TAG = "Myrvice";
public Secondrecvice(){
//复习⾥⾯的onReceive⽅法,可以在这⾥处理⼀些我们需要处理的消息
//假如这这消息是电话就能获取到电话信息,根据⼤家的需求在这⾥⾯写不同的⽅法
Log.i(TAG, "2Receive");
}
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceive");
}
}
实例2:
MainActivity.java
ample.guangbo;
import com.qmk.guangbo.Secondrecvice;
import android.os.Bundle;
import android.app.Activity;
t.Intent;
t.IntentFilter;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button btn1,btn2,btn3;
private Secondrecvice rec;
@Override
protected void onCreate(Bundle savedInstanceState) {
肺结节是什么原因引起的
笔记本电脑怎么调节屏幕亮度tContentView(/doc/1a80afbdf61fb7360b4c6595.html yout.activity_main); btn1=(Button)findViewById(R.id.btn1);
btn2=(Button)findViewById(R.id.btn2);
btn3=(Button)findViewById(R.id.btn3);
btn1.tOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {山东景点
Intent intent=new Intent();//⼴播也是Intent来传递的intent.tAction("android.provider.Telephony.SMS_RECEIVED"); //设置action的值表⽰⼴播的类型,(name)
ndBroadcast(intent);//把intent传递过来
}
});
btn2.tOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
IntentFilter fitt=new IntentFilter();
rec=new Secondrecvice();
fitt.addAction("android.provider.Telephony.SMS_RECEIVED");
//注册
registerReceiver(rec, fitt);
//参数1,⽤来处理⼴播的receiver;参数2:intentfilter对象
}
});
btn3.tOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
unregisterReceiver(rec);//注销
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
/
/ Inflate the menu; this adds items to the action bar if it is prent.
getMenuInflater().u.main, menu);
return true;
}
}
Myguanbo.java叔不可忍
package com.qmk.guangbo;
t.BroadcastReceiver;
t.Context;
t.Intent;
import android.util.Log;
public class Myguanbo extends BroadcastReceiver {
//写⼀个类继承BroadcastReceiver
private static final String TAG = "Myrvice";
public Secondrecvice(){
//复习⾥⾯的onReceive⽅法,可以在这⾥处理⼀些我们需要处理的消息
//假如这这消息是电话就能获取到电话信息,根据⼤家的需求在这⾥⾯写不同的⽅法Log.i(TAG, "2Receive"); }
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceive");
关于笑的词语}
}
Secondrecvice.java
package com.qmk.guangbo;
t.BroadcastReceiver;
t.Context;
t.Intent;
import android.util.Log;
public class Secondrecvice extends BroadcastReceiver {微信怎么申请小号
//写⼀个类继承BroadcastReceiver
private static final String TAG = "Myrvice";
public Secondrecvice(){
//复习⾥⾯的onReceive⽅法,可以在这⾥处理⼀些我们需要处理的消息
/
/假如这这消息是电话就能获取到电话信息,根据⼤家的需求在这⾥⾯写不同的⽅法Log.i(TAG, "2Receive"); }
@Override
public void onReceive(Context context, Intent intent) {
//不能执⾏耗时的操作,它只存在1到2秒钟
Log.i(TAG, "2onReceive");
}
}