• 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>

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

  • 相关阅读:
    xprintf
    Socket调试助手
    ESP8266开发
    WPS for Linux 界面改为中文
    uBlock Origin 广告屏蔽
    Ubuntu删除多余旧内核
    FFmpeg命令
    Mysql-connector-java驱动版本问题
    crontab任务重复执行?不执行?不按照配置执行?大概率是配置出错了!!!
    Binding(四):数据校验
  • 原文地址:https://www.cnblogs.com/langfei8818/p/5935416.html
Copyright © 2020-2023  润新知