当前位置: 首页 > article >正文

Android——静态注册广播

静态注册广播

通过右键新建一个广播
在这里插入图片描述
此时,AndroidManifest.xml文件中会有以下代码

        <receiver
            android:name=".receiver.ShockReceiver"
            android:enabled="true"
            android:exported="true">

        </receiver>

enabled:是否启用该广播,默认为true,可以不写
exported:是否可跨应用使用该广播,如果为false,则只能在当前应用中接收广播

添加意图过滤器

        <receiver
            android:name=".receiver.ShockReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.example.study_android.shock"/>
            </intent-filter>
        </receiver>

定义广播接收者

public class ShockReceiver extends BroadcastReceiver {
    public static final String SHOCK_ACTION = "com.example.study_android.shock";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent != null && intent.getAction().equals(SHOCK_ACTION)) {
            // 从系统服务中获取震动管理器
            Vibrator vb = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
            // 命令震动器震动若干秒,单位:毫秒
            vb.vibrate(500);
        }
    }
}

发送广播

    @Override
    public void onClick(View view) {
        // Android8.0之后删除了大部分静态注册,防止退出App后仍在接收广播,
        // 为了让应用能够继续接收静态广播,需要给静态注册的广播指定包名。

        String fullName = "com.example.study_android.receiver.ShockReceiver";
        Intent intent = new Intent(ShockReceiver.SHOCK_ACTION);
        // 发送静态广播时,需要通过setComponent方法指定接收器的完整路径
        ComponentName componentName = new ComponentName(this, fullName);
        // 设置意图的组件信息
        intent.setComponent(componentName);
        sendBroadcast(intent);
    }

案例代码


http://www.kler.cn/a/373299.html

相关文章:

  • Three.js 快速入门构建你的第一个 3D 应用
  • Java中的运算符【与C语言的区别】
  • 2024年AI绘画与写作工具排行榜:提升创作效率必备利器推荐
  • git log 用法详解
  • springboot学生请假管理系统-计算机毕业设计源码12712
  • 100种算法【Python版】第20篇——Aldous-Broder算法
  • 【面试宝典】Java中创建线程池的几种方式以及区别
  • Vue前端开发:事件绑定方式
  • 一些CSS的基础知识点
  • 软件测试学习笔记丨Selenium学习笔记:css定位
  • 027_UIImage_in_Matlab图形界面开发中的图片
  • linux之网络子系统- 内核发送数据包流程以及相关实际问题
  • SpringBoot篇(监控)
  • HTML基本类型
  • 程序员转项目经理,我们必须掌握的3大核心要素
  • 一款专业获取 iOS 设备的 UDID 工具|一键获取iPhone iPad设备的 UDID
  • src漏洞挖掘#信息收集#网络安全
  • 前端性能优化全攻略:提升用户体验,加速页面加载
  • ArcGIS Pro SDK (十九)场景图层
  • Java已死,大模型才是未来?
  • 数据安全-接口数据混合加密笔记
  • 单节点kubernetes-1.20二进制部署
  • 北京市委决定:这所4校合并的高校,“一把手”调整
  • 【flask】 前后端通信方式 原生js的ajax,总结
  • 【面试全纪实 | Linux 03 安全类】请回答,你真的了解Linux吗?
  • 推荐基于Hadoop的大数据相关环境安装