http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2861|回复: 5

[新手开发之旅] Android新手开发之旅-BroadcastReceiver简介

[复制链接]
发表于 2018-12-21 15:24:47 | 显示全部楼层 |阅读模式
本帖最后由 liu 于 2018-12-21 15:24 编辑

BroadcastReceiver简介




       广播接收器,四大组件之一,是一种全局的监听器,用于监听系统全局的广播消息。它可以监听或接收应用APP发出的广播消息,并做出响应


BroadcastReceiver的生命周期:

从对象调用它开始,到onReceiver方法执行完成之后结束。另外,每次广播被接收后会重新创建BroadcastReceiver对象,并在onReceiver方法中执行完就销毁,如果BroadcastReceiver的onReceiver方法中不能在10秒内执行完成,Android会出现ANR异常。所以不要在BroadcastReceiver的onReceiver方法中执行耗时的操作。
如果需要在BroadcastReceiver中执行耗时的操作,可以通过Intent启动Service来完成。但不能绑定Service。
如果在Activity中注册了BroadcastReceiver,当这个Activity销毁的时候要主动撤销注册否则会出现异常

BroadcastReceiver类型:


无序广播:所有跟广播的intent匹配的广播接收者都可以收到该广播,并且是没有先后顺序
有序广播:所有跟广播的intent匹配的广播接收者都可以收到该广播,但是会按照广播接收者的优先级来决定接收的先后顺序

创建BroadcastReceiver:


[Java] 纯文本查看 复制代码
//继承BroadcastReceiver,实现onReceive(Context context, Intent intent)方法public class MyBroadcastReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        
    }
}


注册BroadcastReceiver:


1、静态注册

在AndroidManifest.xml文件中注册,通过这种方式注册的广播为常驻型广播
[Java] 纯文本查看 复制代码
  <receiver android:name=".MyBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.MyBroadcastReceiver" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>


2、动态注册


在Java代码中进行注册,通过这种方式注册的广播为非常驻型广播,在Activity结束时要调用unregisterReceiver(BroadcastReceiver receiver)方法结束它
[Java] 纯文本查看 复制代码
package com.company.helloworld.firstapplication;

import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private MyBroadcastReceiver receiver;

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

        initView();
    }

    private void initView() {
        receiver = new MyBroadcastReceiver();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.intent.action.MyBroadcastReceiver");
        registerReceiver(receiver, intentFilter);
    }


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


一些常用的Android系统广播action:

监听网络变化                                       
android.net.conn.CONNECTIVITY_CHANGE
屏幕锁屏                                              Intent.ACTION_CLOSE_SYSTEM_DIALOGS
屏幕被关闭                                           Intent.ACTION_SCREEN_OFF
屏幕被打开                                           Intent.ACTION_SCREEN_ON
重启设备                                              Intent.ACTION_REBOOT
屏幕锁屏                                              Intent.ACTION_CLOSE_SYSTEM_DIALOGS
充电时或电量发生变化                           Intent.ACTION_BATTERY_CHANGED
插入外部储存装置(如SD卡)                 Intent.ACTION_MEDIA_CHECKING
设备当前设置被改变时(界面语言、设备方向等)           Intent.ACTION_CONFIGURATION_CHANGED













1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-12-21 15:42:49 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-21 16:15:17 | 显示全部楼层
楼主加油,我们都看好你哦。
发表于 2018-12-21 17:00:02 | 显示全部楼层
楼主加油,我们都看好你哦。
发表于 2018-12-24 10:21:14 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-25 13:53:29 | 显示全部楼层
我只是路过打酱油的。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-29 11:19

© 2014-2021

快速回复 返回顶部 返回列表