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下查看广播接受者是否接收到广播。

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

  • 相关阅读:
    查看Mysql版本
    Day03_SpringCloud2
    Day01_SpringBoot
    【Java面试题】如何判断一个字符串中某个字符出现的次数?
    你以为这样写Java代码很6,但我看不懂
    smart-socket实战:玩转心跳消息
    JVM 对象分配过程
    Spring Cloud基于Redis实现的分布式锁
    Python10行以内代码能有什么高端操作
    会话技术之Cookie详解
  • 原文地址:https://www.cnblogs.com/qikeyishu/p/9215427.html
Copyright © 2011-2022 走看看