首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android:如何完全中止/删除粘性广播

在Android中,要完全中止/删除粘性广播,您可以使用以下方法:

  1. 在您的应用程序中创建一个广播接收器(BroadcastReceiver),并覆盖onReceive()方法。
代码语言:java
复制
public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // 在这里处理您的广播逻辑
    }
}
  1. 在AndroidManifest.xml文件中注册您的广播接收器。
代码语言:xml
复制
<receiver android:name=".MyBroadcastReceiver">
   <intent-filter>
       <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>
  1. 在您的应用程序中创建一个方法,用于注册和取消注册粘性广播。
代码语言:java
复制
public static void registerStickyBroadcast(Context context) {
    Intent intent = new Intent(context, MyBroadcastReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 10, pendingIntent);
}

public static void unregisterStickyBroadcast(Context context) {
    Intent intent = new Intent(context, MyBroadcastReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    alarmManager.cancel(pendingIntent);
}
  1. 在您的应用程序中的适当位置调用registerStickyBroadcast()和unregisterStickyBroadcast()方法来注册和取消注册粘性广播。

例如,在您的Activity的onCreate()方法中调用registerStickyBroadcast()方法,在onDestroy()方法中调用unregisterStickyBroadcast()方法。

代码语言:java
复制
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    registerStickyBroadcast(this);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    unregisterStickyBroadcast(this);
}

通过这种方式,您可以完全中止/删除粘性广播,并确保您的应用程序不会收到任何粘性广播。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android入门教程 | 广播机制 Broadcast

    广播可用于应用间的通讯,是IPC的一种方式。 广播的种类 广播的种类也可以看成是广播的属性。 标准广播(Normal Broadcasts) 完全异步的广播。...接收器接到有序广播后,可以完全地截断广播,或者传递一些信息给下一个接收器。 有序广播的顺序可受android:priority标签影响。同等级的接收器收到广播的顺序是随机的。...有序广播:接收者按照优先级处理广播,并且前面处理广播的接受者可以中止广播的传递,一般通过context. sendOrderedBroadcast或者context.sendOrderedBroadcastAsUser...粘性广播:可以发送给以后注册的接受者,意思是系统会将前面的粘性广播保存在AMS中,一旦注册了与以保存的粘性广播符合的广播,在注册结束后会立即收到广播,一般通过context. sendStickyBroadcast...或context.sendStickyOrderedBroadcast来发送,从字面上看,可以看出来粘性广播也分为普通粘性广播和有序粘性广播

    1.7K30

    安卓应用安全指南 4.2.2 创建使用广播接收器 规则书

    所以不要认为收到的意图在没有任何验证的情况下,是完全安全的。 内部广播接收机具有一定程度的风险,因此还需要验证接收意图的安全性。 请参考“3.2 小心和安全地处理输入数据”。...AndroidManifest.xml中的权限定义/权限请求声明不足以保护,因此请参阅“5.2.1.2 如何使用内部定义的签名权限在内部应用之间进行通信”。...另一方面,粘性广播(以下粘性广播包括粘性有序广播)即使由可用的广播接收器接收也不会从系统中消失,并且能够由registerReceiver()接收。...当粘性广播变得不必要时,可以随时用removeStickyBroadcast()任意删除它。 由于在预设情况下,粘性广播被隐式意图使用。...请注意,粘性广播Android 5.0(API Level 21)中已弃用。

    82830

    安卓应用安全指南 4.2.3 创建使用广播接收器 高级话题

    请注意,粘性广播Android 5.0(API Level 21)中已弃用。...粘性 粘性广播不会消失并保留在系统中,然后调用registerReceiver()的应用可以稍后接收粘性广播。 由于粘性广播与其他广播不同,它不会自动消失。...因此,当不需要粘性广播时,需要显式调用removeStickyBroadcast()来删除粘滞广播。 此外,带有特定权限的受限的广播接收器无法接收广播。...电池状态变化通知的广播(ACTION_BATTERY_CHANGED)是粘性广播的代表性示例。 粘性有序 这是具有有序和粘性特征的广播。...广播的特征行为 普通 有序 粘性 粘性有序 由权限限制的广播接收器可以接收广播 OK OK - - 从广播接收器获得过程结果 - OK - OK 使广播接收器按顺序处理广播 - OK - OK 稍后收到已经发送的广播

    1K10

    如何在电脑上完全删除卸载SQL2008数据库

    有时我们在安装数据库时总是出现这样那样的错误,导致安装不成功需要删除卸载后重新安装,卸载数据库如果没有删除干净在重装数据库的时候会失败。...今天来和小编一起学习下如何在电脑上完全删除卸载SQL2008数据库。1,卸载SQ,2008主程序,点击计算机左下角开始-控制面板,进入控制面板后找到程序-卸载程序。...7,删除规则页面,点击下一步8,准备删除页面确认点击删除。9,删除等待可能需要半个小时,然后点下一步。...10,删除完成后关闭即可,接下来需要删除所有与数据库相关的残留文件和程序,否则在重新安装数据库时会安装失败。...3)另外这些也需要删除删除方式和上面是一样的,找到对应的路径点进去然后删除,这几个是直接删除对应文件夹,不用看右边的值,找到这个文件夹之后然后右键删除即可。

    8410

    17 个必须掌握的 BroadcastReceiver 知识点「建议收藏」

    无序广播 也叫标准广播,是一种完全异步执行的广播。...优点: 完全异步, 逻辑上可被任何接受者收到广播,效率高 缺点: 接受者不能将处理结果交给下一个接受者, 且无法终止广播. 1.2.2 有序广播 是一种同步执行的广播。...1.8 Sticky Broadcast 粘性广播 如果发送者发送了某个广播,而接收者在这个广播发送后才注册自己的 Receiver ,这时接收者便无法接收到刚才的广播 为此 Android...如果在接收者注册完成前发送了多条相同 Action 的粘性广播,注册完成后只会收到一条该 Action 的广播,并且消息内容是最后一次广播内容。 系统网络状态的改变发送的广播就是粘性广播。...粘性广播通过 Context 的 sendStickyBroadcast ( Intent ) 接口发送,需要添加权限 uses-permission android:name=”android.permission.BROADCAST_STICKY

    1.6K31

    安卓开发_深入理解广播机制

    这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。...19 String DELETE_ACTION 动作:从容器中删除给定的数据。...56 String PACKAGE_REMOVED_ACTION 广播:设备上删除了一个应用程序包。...后两个广播接收器都无法再接受此广播了 4、粘性广播(查了下子类,粘性广播已被放弃,过时) 粘性广播的特点为: 会一直保留到广播事件结束,没有所谓的10秒限制 但是当接收此广播广播接收器的onReceive...()方法执行过长时,系统会将此粘性广播设为可以干掉的candidate,意味着一旦系统资源不足,将会中断此广播 1 发送粘性广播的方法 sendStickyBroadcast() ---------

    1.4K70

    EventBus使用详解

    在项目中存在很多Fragment和Fragment之间的信息交互,之前一直在用广播来实现但是广播使用起来较为麻烦且效率不高。...在同事的建议下学习了EventBus,在此做一下学习记录,侵权请告知一定及时删除。 EventBus概述   EventBus是针一款对Android的发布/订阅事件总线。...3.黏性事件 黏性事件和我们的粘性广播很类似,就是在发送事件之后再订阅该事件也能收到该事件。...用法 (1)注册粘性事件 EventBus.getDefault().register(MainActivity.this); (2)处理粘性事件 @Subscribe(sticky = true...尾语 学习到最后发现EventBus其实并不难,和我们之前用的广播很类似,同样需要注册和解除注册,处理消息的方法就类似于广播接收者的onReceive(),同样也可以选择粘性性质。

    1.7K50

    Android高频面试专题 - 基础篇(四)BroadcastReceiver

    1、广播实现原理 Android 中的广播使用了设计模式中的观察者模式:基于消息的发布/订阅事件模型。 模型中有3个角色:1. 消息订阅者(广播接收者) 2. 消息发布者(广播发布者) 3....粘性广播 调用SendStickyBroadcast()方法发送,需要android.Manifest.permission.BROADCAST_STICKT权限,注册者可以接受到注册广播前发送者发送的最后一次广播...系统中电量的广播就是使用粘性广播发送的。 本地广播 通过系统LocalBroadcastManager发送,只能在当前应用内接收。相对于其他类型广播而言,安全性高&效率高。...4、两种广播注册方式的比较 ? 5、LocalBroadcastManager实现原理 LocalBroadcastManager虽然使用和普通广播没有太大差别,但是原理却是完全不同。...在Android 4.0及以上系统中发送广播时,可以使用setPackage()方法设置接受广播的包名。 使用本地广播

    1.7K41

    Android:BroadcastRecevicer广播类型汇总

    Android:Broadcast广播类型主要分为5类: 普通广播(Normal Broadcast) 系统广播(System Broadcast) 有序广播(Ordered Broadcast) 粘性广播...系统广播(System Broadcast) Android中内置了多个系统广播:只要涉及到手机的基本操作(如开机、网络状态变化、拍照等等),都会发出相应的广播 每个广播都有特定的Intent - Filter...(包括具体的action),Android系统广播action如下: 系统操作 action 监听网络变化 android.net.conn.CONNECTIVITY_CHANGE 关闭或打开飞行模式...Intent.ACTION_MEDIA_BAD_REMOVAL 插入外部储存装置(如SD卡) Intent.ACTION_MEDIA_CHECKING 成功安装APK Intent.ACTION_PACKAGE_ADDED 成功删除...粘性广播(Sticky Broadcast) 由于在Android5.0 & API 21中已经失效,所以不建议使用,在这里也不作过多的总结。 ---- 6.

    4.1K41

    如何Android平台GB28181接入终端实现语音广播和语音对讲

    技术背景在之前的blog,我们以Android平台国标接入终端为例,分别介绍了一些常规的功能,比如REGISTER、CATALOG、INVITE、Keepalive、SUBSCRIBE、NOTIFY等常规操作...技术实现图片语音广播接收这块,由于有之前的RTMP和RTSP播放器积累,直接在player端做相应扩展即可,当收到广播后,GB28181语音广播按钮使能。...source_id; this.target_id_ = target_id; return this; } }.set(sourceID, targetID),0);}总结至此、Android...平台GB28181接入终端,如位置订阅、语音广播和语音对讲这块已经全面覆盖,加上之前的技术积累,看了下,已覆盖了以下部分:​[视频格式]H.264/H.265(Android H.265硬编码);[音频格式...]G.711 A律、AAC;[音量调节]Android平台采集端支持实时音量调节;[H.264硬编码]支持H.264特定机型硬编码;[H.265硬编码]支持H.265特定机型硬编码;[软硬编码参数配置]

    1.2K20

    BroadcastReceive基础知识总结「建议收藏」

    等等 Android中的广播机制设计的非常出色,很多事情原本需要开发者亲自操作的额,现在只需要广播告知自己就可以了,大大的减少了开发的工作量和开发周期,而作为应用开发者,就需要熟练掌握Android系统提供的一个开发利器...,然后由优先级高的接受者在传播到优先级别低的接受者那里,优先级高的接受者又能力终止这个广播 (3)Sticky Broadcast:粘性广播 当处理完之后的Intent,依然存在,知道你把它去掉...> 有序广播的gif图: 有序广播传值gif图: 6、粘性广播 发送粘性广播使用:sendStickBroadcast(intent) 发送这个广播需要权限 <uses-permission...():这个方法具有有序广播的特性也有粘性广播的特性; 在这个方法发来的广播中,代码注册方式中,收到广播先后次序为:注明优先级的、代码注册的、没有优先级的;如果都没有优先级,代码注册的收到最先。...protected void onPause() { super.onPause(); unregisterReceiver(mFiveReceiver); } 粘性广播

    42830

    broadcast 学习

    基础知识介绍 android中的broadcast包含动态注册, 静态注册, 有序广播,本地广播。...本地广播 只在应用内部有效的广播,安全性高 粘性广播 注册广播的时候如果系统中有广播,那么马上就能收到,而非粘性广播是需要注册完,系统再次接收到广播,应用才可以接收到 这儿只是介绍下基础概念,重点看下代码流程...如果是有粘性广播,则还需要立马通知下注册方。...再接着第六阶段就是粘性广播的逻辑了,sendBroadcast发送的是非粘性广播,因此也和该流程影响不大,不过这儿还是需要看下,了解下粘性广播的特殊之处 // Add to the sticky...最后的最后再补充下广播anr的处理,前面有介绍过在发送广播的时候就会检查广播有没有超时,同时也会给新的广播设置超时消息,处理完后删除超时消息,那么广播anr是如何报的呢,处理逻辑就在broadcastTimeoutLocked

    43010
    领券