首页 > 代码库 > 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 {12         private static final String TAG = "--Main--";13 14         @Override15         public void onReceive(Context context, Intent intent) {16                 Log.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 14         private static final String TAG ="--Main--";15         private MyDbind mydhd;16 17         @Override18         protected void onCreate(Bundle savedInstanceState) {19                 super.onCreate(savedInstanceState);20                 setContentView(R.layout.activity_main);21                 findViewById(R.id.fasong).setOnClickListener(this);22                 findViewById(R.id.quanbu).setOnClickListener(this);23                 findViewById(R.id.zhuce).setOnClickListener(this);24                 findViewById(R.id.zhuxiao).setOnClickListener(this);25         }26 27         @Override28         public void onClick(View v) {29                 switch (v.getId()){30                         case R.id.quanbu://发送全局广播31                                 Intent intent = new Intent();32                                 //指定接受者33                                 intent.setAction("com.wuxuanedu.hui");34                                 //启动广播35                                 sendBroadcast(intent);36                                 break;37                         case R.id.zhuce://注册局部,38                                  mydhd = new MyDbind();39                                 IntentFilter filter = new IntentFilter("com.wuxuanedu.qq");40                                 registerReceiver(mydhd,filter);41                                 break;42                         case R.id.fasong://发送局部广播,如果要发送局部广播就要先注册43                                 Intent intentt = new Intent();44                                 //指定接受者45                                 intentt.setAction("com.wuxuanedu.qq");46                                 //启动广播47                                 sendBroadcast(intentt);48                                 break;49                         case R.id.zhuxiao://注销局部50                                 unregisterReceiver(mydhd);51                                 break;52                 }53         }54         class MyDbind extends BroadcastReceiver{55 56                 @Override57                 public void onReceive(Context context, Intent intent) {58                         Log.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" 3     package="com.wuxianedu.guangbo"> 4  5     <application 6         android:allowBackup="true" 7         android:icon="@mipmap/ic_launcher" 8         android:label="@string/app_name" 9         android:supportsRtl="true"10         android: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" 3     xmlns:tools="http://schemas.android.com/tools" 4     android:layout_width="match_parent" 5     android:layout_height="match_parent" 6     android:orientation="vertical" 7               android:gravity="center_horizontal" 8     android:paddingBottom="@dimen/activity_vertical_margin" 9     android:paddingLeft="@dimen/activity_horizontal_margin"10     android:paddingRight="@dimen/activity_horizontal_margin"11     android:paddingTop="@dimen/activity_vertical_margin"12     tools:context="com.wuxianedu.guangbo.MainActivity">13 14     <Button android:id="@+id/quanbu"15         android:layout_width="wrap_content"16         android:layout_height="wrap_content"17         android:text="发送全局广播" />18     <Button android:id="@+id/zhuce"19             android:layout_width="wrap_content"20             android:layout_height="wrap_content"21             android:text="注册局部广播" />22     <Button android:id="@+id/fasong"23             android:layout_width="wrap_content"24             android:layout_height="wrap_content"25             android:text="发送局部广播" />26     <Button android:id="@+id/zhuxiao"27             android:layout_width="wrap_content"28             android:layout_height="wrap_content"29             android:text="注销局部广播" />30 </LinearLayout>

 

 

---恢复内容结束---

Android学习笔记--BroadcastReceiver