day12 BroadCastReceiver安卓的广播接收者

day12 BroadCastReceiver安卓的广播接收者

BroadCastReceiver
广播接收者
简介
使用
BroadCastReceiver 广播接收者
简介
其实BroadcastReceiver就是应用程序间的全局大喇叭,即通信的一个手段, 系统自己在很多时候都会发送广播,
比如电量低或者充足,刚启动完,插入耳机,输入法改变等, 发生这些时间,系统都会发送广播,这个叫系统广播,
每个APP都会收到,如果你想让你的应用在接收到 这个广播的时候做一些操作,比如:系统开机后,偷偷后台跑服
务哈哈,这个时候你只需要为你的应用 注册一个用于监视开机的BroadcastReceiver,当接收到开机广播就做写偷
偷摸摸的勾当~ 当然我们也可以自己发广播,比如:接到服务端推送信息,用户在别处登录,然后应该强制用户下
线回到 登陆界面,并提示在别处登录当然,这些等下都会写一个简单的示例帮大家了解广播给我们带来的好处
使用
创建一个广播接收者,创建一个类继承BroadcastReceiver

import android.content.BroadcastReceiver;
        import android.content.Context;
        import android.content.Intent;

public class Myreceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

    }
}
清单文件里写一个广播接收者

<!-- 接收者 -->
<receiver android:name=".Myreceiver"
        android:enabled="true"
        android:exported="true">
<intent-filter>
<action android:name="com.zx"></action>
</intent-filter>
</receiver>

Java代码

import android.content.Intent;
        import android.content.IntentFilter;
        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;
        import android.view.View;
        import android.widget.Button;

        import com.example.day12.util.BroadcastConst;

        import java.io.BufferedReader;
        import java.io.FileFilter;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button sendId;
    private  MyReceiver myReceiver;

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

        sendId = findViewById(R.id.send_id);
        sendId.setOnClickListener(this);
        //创建一个接收者
        myReceiver = new MyReceiver();
        //添加广播过滤器
        IntentFilter intentFilter = new IntentFilter();
        //添加action
        intentFilter.addAction(BroadcastConst.ACTION);
        //注册
        registerReceiver(myReceiver,intentFilter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //注销
        unregisterReceiver(myReceiver);
    }
}
无序广播


Intent intent = new Intent();
 intent.setAction("com.feng.broad");
         Bundle bundle = new Bundle();
         bundle.putInt("msg",123);
         intent.putExtras(bundle);
         sendBroadcast(intent);
有序广播
 Intent intent1 = new Intent();
intent1.setAction("com.feng.broad");
        //第一个参数是intent 二是权限名.
        sendOrderedBroadcast(intent1,null);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值