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;
}
}发布于 2013-09-06 16:54:12
onReceive()方法的BroadcastReceiver线程是安全的,还是我需要自己实现同步?
它只会在主应用程序线程上被调用。因此,对于主应用程序线程上运行的任何其他内容,它都是线程安全的。
如果我有在onReceive()方法中使用的任何类级变量,并且onReceive()方法被快速多次调用,它会引起问题吗?
如果在清单中注册了BroadcastReceiver,则为每个广播创建一个新实例。这就是为什么您通常不会在BroadcastReceiver上看到数据成员。
https://stackoverflow.com/questions/18662618
复制相似问题