Android学习笔记--BroadcastReceiver
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 @Override 15 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 @Override 18 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 @Override 28 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 @Override 57 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的主要内容,如果未能解决你的问题,请参考以下文章