zoukankan      html  css  js  c++  java
  • 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>

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

  • 相关阅读:
    Codeforces 1291 Round #616 (Div. 2) B
    总结
    刷新DNS解析缓存+追踪+域名解析命令
    数学--数论--Hdu 5793 A Boring Question (打表+逆元)
    Lucene.net(4.8.0) 学习问题记录六:Lucene 的索引系统和搜索过程分析
    LeetCode 117 Populating Next Right Pointers in Each Node II
    LeetCode 116 Populating Next Right Pointers in Each Node
    test test
    LeetCode 115 Distinct Subsequences
    LeetCode 114. Flatten Binary Tree to Linked List
  • 原文地址:https://www.cnblogs.com/langfei8818/p/5935416.html
Copyright © 2011-2022 走看看