BroadcastReceiver onReceive() 线程安全吗?

2024-01-25

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(使用前将#替换为@)

BroadcastReceiver onReceive() 线程安全吗? 的相关文章

随机推荐