• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

安卓广播BroadcastReceiver

武飞扬头像
half_m
帮助1

安卓学习 - 广播BroadcastReceiver

简单的广播例子-动态注册广播

动态注册可以不用操作manifests.xml文件,只需要建一个继承了BroadcastReceiver的类,并重写onReceive()方法,最主要的还是在MainActivity中写相关的绑定触发,但是只能触发一个接收者。

package com.example.myapplication;

import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class BroadcastReceiver extends android.content.BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "网络状态发生变化",Toast.LENGTH_SHORT).show();
    }
}
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.IntentFilter;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    BroadcastReceiver myReceiver;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myReceiver = new BroadcastReceiver();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
        registerReceiver(myReceiver, intentFilter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(myReceiver);
    }
}

学新通

学新通

静态注册广播

先写一个广播接受者,用于接收发来的广播并且将其显示。
MyReceiver.java

public class MyReceiver extends android.content.BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"广播接收成功",Toast.LENGTH_SHORT).show();
    }

}

然后在Activity中重写onCreate方法,写一个按钮,当点击按钮时向这个包下的所有继承了广播接收者(BroadcastReceiver)的所有类都发送广播,这时候可以触发所有这些类的onReceive() 方法。

public class MainActivity extends AppCompatActivity {

    BroadcastReceiver myReceiver;
    private final String action = "MyBroadcast";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button =(Button) findViewById(R.id.btn1);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent();
                intent.setPackage(getPackageName());
                //intent.setAction(action);
                MainActivity.this.sendBroadcast(intent);
            }
        });
    }
}
学新通

最主要的别忘了,要在manifests.xml中注册你所需要的广播接收者

		<receiver android:name=".MyReceiver">
            <intent-filter>
                <action android:name ="MyBroadcast"/>
            </intent-filter>
        </receiver>

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfafbi
系列文章
更多 icon
同类精品
更多 icon
继续加载