android基础 BroadCastReciver

来源:互联网 发布:好看的小说知乎2017 编辑:程序博客网 时间:2024/06/06 15:45


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
原创粉丝点击