zoukankan      html  css  js  c++  java
  • 自定义广播(BroadcastReceiver)事件 --Android开发

    本例演示自定义广播事件。我们需要做的是,在主活动中写发送广播的代码,然后在接收广播的类中写接收广播的代码。

    1、主活动中点击按钮后发送广播

    MainActivity.java:

    public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    }
    public void onClick(View view) {
    Intent intent = new Intent();
    intent.setAction("com.thanlon.diyAction");//自定义广播的类型
    //        sendBroadcast(intent);//直接发送广播

    intent.putExtra("info_key", "广播传递的参数");//发送带参数的广播;
    sendBroadcast(intent, "com.thanlon.permission.name");//需要带指定权限的接受者才能接收到广播
        }
    }

    2、写一个接收广播的类。

    MyBroadcastReceiver.java:

    public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    Log.d("thanlon", "收到自定义广播");
    String info = intent.getStringExtra("info_key");//接受广播带的参数
    Log.d("thanlon", info);
    }
    }

    3、在AndroidManifest.xml中配置自定义广播类型和自定义接收者的权限(注册广播)。

    AndroidManifest.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="thonlon.example.cn.diybroadcastreceiverdemo">
    <!--自定义接收者权限-->
    <permission android:name="com.thanlon.permission.name" />
    <!--配置接收者权限-->
    <uses-permission android:name="com.thanlon.permission.name" />
    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
       <!--注册广播,本例自定义广播类型-->
            <receiver android:name=".MyBroadcastReceiver">
    <intent-filter>
    <action android:name="com.thanlon.diyAction" />
    </intent-filter>
    </receiver>
    </application>
    </manifest>

     4、在logcat下查看广播接受者是否接收到广播。

      很明显正确接收到广播并且接收到了 广播传递的参数。

  • 相关阅读:
    CSDNReader(android客户端)发布!!
    linux下的C语言快速学习—从1+1开始。
    linux下的C语言快速学习—进程和文件
    ListView动态加载数据分页(使用Handler+线程和AsyncTask两种方法)
    CSDN阅读器(android版)开发总结
    算法实现将一个输入的数字颠倒(输入12345>54321)
    linux下的C语言快速学习—计算机体系结构基础简单了解
    实现一个字符串查找子串的函数
    .net4.0面向对象学习笔记—数据类型
    装饰器模式
  • 原文地址:https://www.cnblogs.com/qikeyishu/p/9215427.html
Copyright © 2011-2022 走看看