zoukankan      html  css  js  c++  java
  • 广播发送与接受的两种方式

    第一种在JAVA代码中注册接收端:

     1 package com.zzw.broadcast;
     2 
     3 import android.app.Activity;
     4 import android.content.BroadcastReceiver;
     5 import android.content.Context;
     6 import android.content.Intent;
     7 import android.content.IntentFilter;
     8 import android.os.Bundle;
     9 import android.util.Log;
    10 import android.view.View;
    11 import android.view.View.OnClickListener;
    12 
    13 public class MainActivity extends Activity {
    14     final String action = "com.zzw";
    15     BroadcastReceiver mBroadcastReceiver;
    16 
    17     @Override
    18     protected void onCreate(Bundle savedInstanceState) {
    19         super.onCreate(savedInstanceState);
    20         setContentView(R.layout.activity_main);
    21         init();
    22         // 点击按钮发送广播
    23         findViewById(R.id.button).setOnClickListener(new OnClickListener() {
    24             @Override
    25             public void onClick(View v) {
    26                 // 发送广播
    27                 Intent intent = new Intent();
    28                 intent.setAction(action);
    29                 intent.putExtra("name", "zzw");
    30                 MainActivity.this.sendBroadcast(intent);
    31                 Log.e("发送广播的状态-----","发送成功");
    32             }
    33         });
    34     }
    35 
    36     // 注册接收端
    37     private void init() {
    38         mBroadcastReceiver = new TestBroadcastReceiver();
    39         IntentFilter filter = new IntentFilter(action);// 过滤
    40         registerReceiver(mBroadcastReceiver, filter);
    41     }
    42 
    43     private class TestBroadcastReceiver extends BroadcastReceiver {
    44         // 接收广播
    45         @Override
    46         public void onReceive(Context context, Intent intent) {
    47             Log.e("接受广播的状态-----", "收到广播");
    48             Log.e("收到的action-----", intent.getAction());
    49             Log.e("收到的name-------", intent.getExtras().getString("name"));
    50         }
    51     }
    52 
    53     // 关闭广播
    54     @Override
    55     protected void onDestroy() {
    56         if (mBroadcastReceiver != null) {
    57             unregisterReceiver(mBroadcastReceiver);
    58         }
    59         super.onDestroy();
    60     }
    61 }

    第二种在AndroidManifest中注册接收端:

    发送的代码:

     1 package com.zzw.broadcast2;
     2 
     3 import android.app.Activity;
     4 import android.content.Intent;
     5 import android.os.Bundle;
     6 import android.util.Log;
     7 import android.view.View;
     8 import android.view.View.OnClickListener;
     9 
    10 public class MainActivity extends Activity {
    11     String action = "com.zzw";
    12 
    13     @Override
    14     protected void onCreate(Bundle savedInstanceState) {
    15         super.onCreate(savedInstanceState);
    16         setContentView(R.layout.activity_main);
    17         findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
    18             @Override
    19             public void onClick(View v) {
    20                 Intent intent = new Intent(action);
    21                 intent.putExtra("name", "zzw");
    22                 MainActivity.this.sendBroadcast(intent);
    23                 Log.e("发送的状态-----", "发送成功");
    24             }
    25         });
    26     }
    27 }

    接收的代码:

     1 package com.zzw.broadcast2;
     2 
     3 import android.content.BroadcastReceiver;
     4 import android.content.Context;
     5 import android.content.Intent;
     6 import android.util.Log;
     7 
     8 public class TestReceiver extends BroadcastReceiver {
     9 
    10     @Override
    11     public void onReceive(Context context, Intent intent) {
    12         Log.e("接收的状态-----", "接受成功");
    13         Log.e("接受到的action---", intent.getAction());
    14         Log.e("接受到的name-----", intent.getExtras().getString("name"));
    15     }
    16 }

    AndroidManifest中注册接收端代码:在application中,与activity同级

    1  <receiver android:name="com.zzw.broadcast2.TestReceiver" >
    2 
    3             <!-- 过滤器 -->
    4             <intent-filter>
    5                 <action android:name="com.zzw" />
    6             </intent-filter>
    7         </receiver>
  • 相关阅读:
    精细化python 类的内置属性
    python操作excel
    ghost linux
    Linux dd 命令
    Ubantu 使用root登陆的方法
    NSIS Error: "Error writing temporary file. Make sure your temp folder is valid
    error writing temporary file。make sure your temp folder is valid 问题已解决
    安卓电池状态监听
    Android源码下载
    vim插件详细安装过程
  • 原文地址:https://www.cnblogs.com/zzw1994/p/4935917.html
Copyright © 2011-2022 走看看