我们都知道我们注册了两种类型的BroadcastReceiver
1)Static Registration
2)Dynamic Registration
但我怀疑我们何时需要使用Static,何时需要使用Dynamic。
发布于 2014-04-23 11:08:15
众所周知,注册BroadcastReceiver有两种方法:一种是静态,另一种是动态。
静态:
动态:
Context.registerReceiver()动态注册实例。当我们进行动态注册时(即在运行时),它将与应用程序的生命周期相关联。如果我们这样做,静态注册(即编译时),我们的应用程序没有运行,将创建一个新的进程来处理广播。
发布于 2015-06-22 23:40:06
1)静态注册
实现是显式的,android系统可以启动进程并运行板播接收器。例如,当系统或其他方面出现新的意图时,您想要更新您的数据。你也要注意安全问题。
2)动态注册
实现是在java代码中实现的,只有当应用程序运行到注册行时,板广播接收器才会运行。因此,如果只想在一定条件下打开板播接收器,则主要希望使用此方法。
发布于 2018-02-12 07:25:46
最简单的决定方法是:
如果您希望应用程序能够收听广播,即使应用程序已经关闭,也可以选择静态广播接收方。
如果您希望您的应用程序只侦听特定的实例(当应用程序运行时),那么选择Dynamic BroadCast Receiver。
示例:
任何电池监控应用程序都需要听所有的广播意图(相关电池),即使应用程序没有运行。所以这里我们需要静态的
任何使用OTP的应用程序,只需要在应用程序运行时才能收听Sms。开始动感。
https://stackoverflow.com/questions/23241931
复制相似问题