Android学习笔记--BroadcastReceiver

智者不为愚者谋,勇者不为怯者死。这篇文章主要讲述Android学习笔记--BroadcastReceiver相关的知识,希望能为你提供帮助。
---恢复内容开始---
过了一个没有假期的10.1,今天来把之前学的东西复习一下,BroadcastReceiver,android四大组件之一,为什么这么说,百度一下,你就知道,
BroadcastReceiver分为两种广播,一种是常驻型,一种是非常驻型,常驻型是在XML中国注册的被称为常驻型,在代码中注册的被称作为非常驻型,
第一步,先建立一个java文件,继承与BroadcastReceiver类,

MyBind.java

1 package com.wuxianedu.guangbo; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.util.Log; 7 8 /** 9* Created by Administrator on 2016/10/5. 10*/ 11 public class MyBind extends BroadcastReceiver { 12private static final String TAG = "--Main--"; 13 14@Override 15public void onReceive(Context context, Intent intent) { 16Log.e(TAG, "我是全局广播----------------------------"); 17} 18 19 }

Mainactivity.java
1 package com.wuxianedu.guangbo; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.content.IntentFilter; 7 import android.support.v7.app.AppCompatActivity; 8 import android.os.Bundle; 9 import android.util.Log; 10 import android.view.View; 11 12 public class MainActivity extends AppCompatActivity implements View.OnClickListener { 13 14private static final String TAG ="--Main--"; 15private MyDbind mydhd; 16 17@Override 18protected void onCreate(Bundle savedInstanceState) { 19super.onCreate(savedInstanceState); 20setContentView(R.layout.activity_main); 21findViewById(R.id.fasong).setOnClickListener(this); 22findViewById(R.id.quanbu).setOnClickListener(this); 23findViewById(R.id.zhuce).setOnClickListener(this); 24findViewById(R.id.zhuxiao).setOnClickListener(this); 25} 26 27@Override 28public void onClick(View v) { 29switch (v.getId()){ 30case R.id.quanbu://发送全局广播 31Intent intent = new Intent(); 32//指定接受者 33intent.setAction("com.wuxuanedu.hui"); 34//启动广播 35sendBroadcast(intent); 36break; 37case R.id.zhuce://注册局部, 38mydhd = new MyDbind(); 39IntentFilter filter = new IntentFilter("com.wuxuanedu.qq"); 40registerReceiver(mydhd,filter); 41break; 42case R.id.fasong://发送局部广播,如果要发送局部广播就要先注册 43Intent intentt = new Intent(); 44//指定接受者 45intentt.setAction("com.wuxuanedu.qq"); 46//启动广播 47sendBroadcast(intentt); 48break; 49case R.id.zhuxiao://注销局部 50unregisterReceiver(mydhd); 51break; 52} 53} 54class MyDbind extends BroadcastReceiver{ 55 56@Override 57public void onReceive(Context context, Intent intent) { 58Log.e(TAG, "我是局部广播----------------------------"); 59} 60} 61 62 }

上述代码中,分别实现了发送局部广播和全局广播,全局广播是在XML中注册,而局部广播是在代码中注册,
代码里面我已经写注释了,
附上配置文件和XML布局代码
1 < ?xml version="1.0" encoding="utf-8"?> 2 < manifest xmlns:android="http://schemas.android.com/apk/res/android" 3package="com.wuxianedu.guangbo"> 4 5< application 6android:allowBackup="true" 7android:icon="@mipmap/ic_launcher" 8android:label="@string/app_name" 9android:supportsRtl="true" 10android:theme="@style/AppTheme"> 11< activity android:name=".MainActivity"> 12< intent-filter> 13< action android:name="android.intent.action.MAIN" /> 14 15< category android:name="android.intent.category.LAUNCHER" /> 16< /intent-filter> 17< /activity> 18< receiver android:name=".MyBind"> 19< intent-filter > 20< action android:name="com.wuxuanedu.hui"/> 21< /intent-filter> 22< /receiver> 23< /application> 24 25 < /manifest>

布局代码
1 < ?xml version="1.0" encoding="utf-8"?> 2 < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3xmlns:tools="http://schemas.android.com/tools" 4android:layout_width="match_parent" 5android:layout_height="match_parent" 6android:orientation="vertical" 7android:gravity="center_horizontal" 8android:paddingBottom="@dimen/activity_vertical_margin" 9android:paddingLeft="@dimen/activity_horizontal_margin" 10android:paddingRight="@dimen/activity_horizontal_margin" 11android:paddingTop="@dimen/activity_vertical_margin" 12tools:context="com.wuxianedu.guangbo.MainActivity"> 13 14< Button android:id="@+id/quanbu" 15android:layout_width="wrap_content" 16android:layout_height="wrap_content" 17android:text="发送全局广播" /> 18< Button android:id="@+id/zhuce" 19android:layout_width="wrap_content" 20android:layout_height="wrap_content" 21android:text="注册局部广播" /> 22< Button android:id="@+id/fasong" 23android:layout_width="wrap_content" 24android:layout_height="wrap_content" 25android:text="发送局部广播" /> 26< Button android:id="@+id/zhuxiao" 27android:layout_width="wrap_content" 28android:layout_height="wrap_content" 29android:text="注销局部广播" /> 30 < /LinearLayout>

 
 
【Android学习笔记--BroadcastReceiver】---恢复内容结束---

    推荐阅读