bug分析 有关广播

来源:互联网 发布:淘宝卖家怎么合并发货 编辑:程序博客网 时间:2024/06/04 01:36

最近发现了一个问题

蓝牙发出来电广播 receiver会延迟8s左右

后查看下代码发现是静态注册,改成动态注册解决。

一下是广播的一些小知识点


android的广播分为静态注册和动态注册两种方式,具体的操作方式网上有非常多的案例。这里主要记录一下他们的一些特殊的小知识。

1.动态注册和静态注册可以同时进行,简单来说就是使用一个Receiver分别在AndroidManifast中进行注册,又写入在程序中用代码注册(无论Action是否相同),两种注册方式不会造成影响。动态注册只会在程序存在时执行,静态注册一直执行。哪怕是完全相同的Receiver。即如果程序存在,该Receiver会被执行两次。

2.动态注册使用同一个Receiver对象,从开始创建直到其被解除注册。会使用同一个Receiver,无论这个广播被触发几次。而静态注册则每次触发都会建立新的Receiver对象。

3.android.intent.action.SCREEN_ON与android.intent.action.SCREEN_OFF不可以使用静态注册(没有效果),必须使用动态注册的方式。可能是由于android的内部管理机制导致,不希望程序在未运行时还保持对屏幕的监视。

0 0
原创粉丝点击