【Android异常】关于静态注册BroadcastReceiver接收不到自定义广播的问题
Android 8.0以上需要setComponent()来指定包名和类名,第1个参数是指接收广播类的包名,第2个参数是指接收广播类的完整类名。
静态广播
1.先使用Android Studio创建一个广播接收类。File->New->Other->Broadcast Receiver,先创建一个广播类,这个创建的类会自动帮我们继承BroadcastReceiver类,接收广播,需要继承这个类。
- MyReceiver.java
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
Toast.makeText(context, "收到广播", Toast.LENGTH_SHORT).show();
}
}
上面的代码,很简单,就是在接收到广播时,弹出一个toast提示框。
2.发送广播
在界面上添加一个Button按钮,然后编写按钮的onclick事件。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1=findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
intent.setAction("com.example.learnbroadcast.MY_Action");
intent.setComponent(new ComponentName("com.example.learnbroadcast","com.example.learnbroadcast.MyReceiver"));
// 上面这一行在Android 7.0及以下版本不是必须的,但是Android 8.0或者更高版本,发送广播的条件更加严苛,必须添加这一行内容。
// 创建的ComponentName实例化对象有两个参数,第1个参数是指接收广播类的包名,第2个参数是指接收广播类的完整类名。
sendBroadcast(intent);
}
});
}
}
【Android异常】关于静态注册BroadcastReceiver接收不到自定义广播的问题的更多相关文章
- 关于静态注册BroadcastReceiver接收不到广播的问题
1.背景&解决方法 最近碰到一个需求,app监听特定的广播,接收到广播后启动自己再进行处理.需求很简单,静态注册就好,不过,在自测的时候遇到一个问题,app安装后没启动过的状态下,什么广播都收 ...
- BroadcastReceiver 接收系统短信广播
BroadcastReceiver 接收系统短信广播 /* 注册广播: * |--静态注册 (在AndroidManifest .xml 中注册) * <receiver androi ...
- Android JNI之静态注册
这篇说静态注册,所谓静态注册,就是native的方法是直接通过方法名的规定格式和Java端的声明处代码对应起来的,其对应规则如下: JNIEXPORT <返回值> JNICALL Java ...
- BroadcastReceiver接收电量变化的广播-------在代码中动态创建接受者
本例为动态创建广播接收者即不是在AndroidManifest.xml文件中定义的广播接收着 代码: package com.qf.broadcastreceiver01; import androi ...
- MIUI7,Android版本5.0.2,一个程序发送自定义广播,另一个程序没有接收到
对照<第一行代码——Android>进行学习,第五章中说到广播包的相关知识,前面获取广播等程序例程都可以跑的通,但是在5.3.2节中,程序A发送自定义广播,并接收自定义广播,同时程序B也接 ...
- Android高版本收不到静态注册的广播
Beginning with Android 8.0 (API level 26), the system imposes additional restrictions on manifest-de ...
- Android 动态注册 亮屏、息屏广播
/***************************************************************************** * Android 动态注册 亮屏.息屏广 ...
- Android(java)学习笔记173:BroadcastReceiver之 静态注册 和 动态注册
1. 广播接受者>什么是广播.收音机.电台:对外发送信号.收音机:接收电台的信号. >在android系统里面,系统有很多重要的事件: 电池电量低,插入充电器,sd卡被移除,有电话打出去, ...
- Android(java)学习笔记116:BroadcastReceiver之 静态注册 和 动态注册
1. 广播接受者>什么是广播.收音机.电台:对外发送信号.收音机:接收电台的信号. >在android系统里面,系统有很多重要的事件: 电池电量低,插入充电器,sd卡被移除,有电话打出去, ...
- BroadcastReceiver(广播)的静态注册和动态注册 --Android开发
BroadcastReceiver是安卓四大组件之一,本例通过代码的方式演示静态注册和动态注册. 1.静态注册 静态注册只需要AndroidManifest.xml中进行配置: AndroidMani ...
随机推荐
- python-djanggo 实现读取excel 表格在网页中展示
1.准备读取数据 放到项目文件夹下 2.熟悉表结构 3.准备处理依赖库 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas o ...
- h5打包exe,uniapp打包桌面应用exe,mac,electron方式
1.配置镜像 因为下载慢,所以.(网速快的可以跳过这步) 右键我的电脑-属性-高级系统设置-高级-环境变量-新建 变量名: ELECTRON_MIRROR 变量值: https://cdn.npm.t ...
- vue vant3上传图片文件以流的形式上传
axios.post("/fjt_fast/sys/comm/upload", { file: param.file}, { headers: { 'Content-Type': ...
- python方法、类方法和静态方法的区别
class A: def f1(): pass def f2(self): pass @classmethod def f3(cls): pass @staticmethod def f4(): pa ...
- unity ScriptObject使用
转自 https://www.jianshu.com/p/77fabc83555b using UnityEngine; [CreateAssetMenu(fileName = "Untit ...
- alpine镜像安装sshd以进行远程debug
FROM alpine:latest RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories ...
- map转listmap
package com;import java.util.*;import java.util.stream.Collectors;public class LambadaTest { public ...
- vl_nnconv.mexw64找不到指定模块
在Installing and compiling the library--matconvnet-1.0-beta25时遇到的错误,总是提示"Invalid MEX-file 'C:\Us ...
- uniapp 跳转链接
安装 uni-link 超链接 组件在异步里需要 跳转页面 或者 app里打开浏览器,不能自动跳转, 如充值:增加一个弹窗,获取到地址之后,手动点击link,打开app <uni-link :h ...
- 想通过anconda来创建一个虚拟环境,结果发现一直报错。An unexpected error has occurred. Conda has prepared the above report.
本来想要通过conda create -n drf-admin python==3.8 来创建一个虚拟环境,结果一直报错. An unexpected error has occurred. Cond ...