jjzjj

android - BroadcastReceiver onReceive() 线程安全吗?

coder 2023-12-11 原文

BroadcastReceiveronReceive() 方法是线程安全的还是我需要自己实现同步?

如果我有任何在 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;
       }
      }

最佳答案

Is onReceive() method of BroadcastReceiver thread safe or I need to implement synchronization on my own?

它只会在主应用程序线程上调用。因此,对于在主应用程序线程上运行的任何其他内容,它都是线程安全的。

If I have any class level variable which is being used inside the onReceive() method, and the onReceive() method is called multiple times very quickly, would it cause an issue?

如果 BroadcastReceiver 已在 list 中注册,则会为每个广播创建一个新实例。这就是为什么您通常不会在 BroadcastReceiver 上看到数据成员。

关于android - BroadcastReceiver onReceive() 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18662618/

有关android - BroadcastReceiver onReceive() 线程安全吗?的更多相关文章

随机推荐