android基础 BroadCastReciver



BroadCastReciver  广播接收器

  需要创建一个接收器自定义一个类来继承BroadCastReciver 重写OnRecive方法在方法里判断获取到的action是不是你注册的动作

如果是执行你想要让其进行的操作

  如果是自己发送的广播就需要在清单文件中或者是activity中注册  一定要在Ondestroy中解除注册

如果是系统广播也有上述两种注册方式不过都不用手动来发送也不用再ondestroy方法中来解除注册

activity中注册

/**发送自己的广播先注册**/

receiver=new recever();

IntentFilter filter=new IntentFilter("XXX");//创建意图过滤器

registerReceiver(receiver, filter);//注册

Intent intent=new Intent();

intent.setAction("XXX");

intent.putExtra("XK""whta's happen?");

sendBroadcast(intent);//发送广播

 

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

unregisterReceiver(receiver);//解除注册

}

在清单文件中注册于activity同级

<receiver android:name="com.example.reverss.MyResiver">

            <intent-filter >

                <action android:name="android.intent.action.AIRPLANE_MODE"/>

            </intent-filter>

                 </receiver>

 

 

 

简单的实例  

发送端

package com.example.resiver;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.content.IntentFilter;

import android.view.View;

import android.widget.Button;

public class MainActivity extends Activity {

recever receiver;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setContentView(R.layout.activity_main);

/**发送自己的广播先注册**/

receiver=new recever();

IntentFilter filter=new IntentFilter("XXX");//创建意图过滤器

registerReceiver(receiver, filter);//注册

Intent intent=new Intent();

intent.setAction("XXX");

intent.putExtra("XK", "whta's happen?");//intent传值

sendBroadcast(intent);

 

// /**接受系统广播**/

// receiver=new recever();

// //创建一个意图过滤器筛选这个动作

// IntentFilter filter=new IntentFilter(Intent.ACTION_BATTERY_CHANGED);

// registerReceiver(receiver, filter);//注册

}

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

unregisterReceiver(receiver);//解除注册

}

}

 

 

接收器

package com.example.resiver;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

public class recever extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {

// String action=intent.getAction();//当获取的到动作是电池改变的时候

// if(action.equals(Intent.ACTION_BATTERY_CHANGED)){

// System.out.println("我监听到了电池改变");

// }

String action=intent.getAction();

if(action.equals("XXX")){

String msg=intent.getStringExtra("XK");//获取传递过来的值

System.out.println("msg:"+msg);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值