Is onReceive()
的方法BroadcastReceiver
线程安全还是我需要自己实现同步?
如果我有任何正在使用的类级别变量onReceive()
方法,以及onReceive()
方法被多次快速调用,会导致问题吗?
public class MyBroadCastReceiver extends BroadcastReceiver {
boolean isFirstTrigger = true;
@Override
public void onReceive(Context context, Intent arg1) {
if(isFirstTrigger)
{
//Do something time consuming
isFirstTrigger = false;
}
}
BroadcastReceiver的onReceive()方法是线程安全的还是我需要自己实现同步?
它只会在主应用程序线程上被调用。因此,对于主应用程序线程上运行的任何其他内容来说,它是线程安全的。
如果我有任何在 onReceive() 方法内部使用的类级别变量,并且 onReceive() 方法很快被多次调用,是否会导致问题?
If the BroadcastReceiver
在清单中注册后,将为每个广播创建一个新实例。这就是为什么您通常看不到数据成员BroadcastReceiver
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)