BroadcastReceiver静态注册案例详解
作者:砖厂打工仔 发布时间:2022-12-30 18:31:10
标签:BroadcastReceiver,静态注册
BroadcastReceiver静态注册案例演示,供大家参考,具体内容如下
静态注册与动态注册的区别:
动态注册:广播 * 可以自由的控制注册与取消,具有很大的灵活性。但只有在应用程序启动后才能收到广播。并且动态注册的广播 * 的生命周期与其对应的Acitivity的生命周期是一致的。
静态注册:又叫做清单注册,即在AndroidManifest.xml中进行注册。静态注册的广播不受程序是否启动的约束,当应用程序关闭后,还可以接收到广播。
效果图:
代码:
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Intent intent = new Intent("com.example.action.MY_BROADCAST");
//sendBroadcast(intent);
//Android 8.0后不再支持以上这种方式
//需采用指定包名或组件名的形式,即显式Intent
//1.指定包名
//Intent intent = new Intent();
//intent.setAction("com.example.action.MY_BROADCAST");
//intent.setPackage("com.example.a02staticregister");
//sendBroadcast(intent);
//2.指定组件名,依据intent的Component属性
Intent intent = new Intent();
intent.setComponent(new ComponentName(MainActivity.this,StaticReceiver.class));
//也可简写成以下形式,常用写法
//Intent intent = new Intent(MainActivity.this,StaticReceiver.class);
sendBroadcast(intent);
}
});
}
}
StaticReceiver.java
public class StaticReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"StaticReceiver收到广播了~~",Toast.LENGTH_LONG).show();
}
}
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.a02staticregister">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.BroadcastRecetiverTest">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".StaticReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.example.action.MY_BROADCAST"/>
</intent-filter>
</receiver>
</application>
</manifest>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="发送自定义广播"/>
</LinearLayout>
来源:https://blog.csdn.net/weixin_42456748/article/details/124693862


猜你喜欢
- 很多C#的教材都会强调对象相等的概念。我们都知道,在C#的世界里存在两种等同性。一种是逻辑等同性:如果两个对象在逻辑上代表同样的值,则称他们
- C++中的动态数组(Dynamic Array)是指动态分配的、可以根据需求动态增长占用内存的数组。为了实现一个动态数组类的封装,我们需要考
- MyBatis-Plus是通过version机制实现乐观锁的。大致思路:取出记录,携带记录的当前version;更新记录的时候,比较记录当前
- 一、着色游戏概述近期群里偶然看到一哥们在群里聊不规则图像填充什么四联通、八联通什么的,就本身好学务实的态度去查阅了相关资料。对于这类着色的资
- 废话不多说了,直接步入正题了。1、批量添加元素session.insert(String string,Object o)public vo
- Android中Toolbar随着ScrollView滑动透明度渐变效果实现一.思路:监听ScrollView的滑动事件 不断的修改Tool
- 本文实例为大家分享了Android滑动组件悬浮固定在顶部效果的具体代码,供大家参考,具体内容如下要想实现的效果是如下:场景:有些时候是内容中
- 先给大家展示下效果图,对第三方开源 android tickplusdrawable相关知识感兴趣的朋友一起学习吧。Android tick
- maven scope provided和runtime例子maven常用的scope有compile,provided,runtime,t
- class文件中的特殊字符串首先说明一下, 所谓的特殊字符串出现在class文件中的常量池中,本着循序渐进和减少跨度的原则, 首先把clas
- 1. HttpServletRequest包装类因为HttpServletRequest只能读取一次,所以需要对request进行包装,变成
- 一、项目简述本系统功能包括:通知公告,老人管理,护工管理,问答管理等等功能。二、项目运行环境配置: Jdk1.8 + Tomcat8.5 +
- 要实现摇一摇的功能,类似于微信的摇一摇方法1:通过分析加速计数据来判断是否进行了摇一摇操作(比较复杂)方法2:iOS自带的Shake监控AP
- string fileExt = Path.GetExtension(excelPath);string conn = "&quo
- @Cacheable自定义KeyGenerator1. 概述SpringBoot 使用 @Cacheable 可以方便的管理缓存数据,在不指
- 前言C#基于NAudio工具对Wav音频文件进行剪切,将一个音频文件剪切成多个音频文件注:调用方法前需要导入NAudio.dll或者在NuG
- AlertDialog可以在当前的界面上显示一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他控件的交互能力,因此AlertD
- Android5.0之后提供了JobService和JobScheduler,用于在稍后的某个时间点或者当满足某个特定的条件时执行一个任务
- 通过反射根据提供的表名、POJO类型、数据对象自动生成sql语句。如名为 User 的JavaBean与名为 user 的数据库表对应,可以
- Java8 移除两个相同List对象List<Data> data1 = new ArrayList<>(