首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BroadcastReceiver onReceive()线程安全?

BroadcastReceiver onReceive()线程安全?
EN

Stack Overflow用户
提问于 2013-09-06 16:43:35
回答 1查看 4.1K关注 0票数 6

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

如果我有任何在onReceive()方法中使用的类级变量,并且onReceive()方法被快速多次调用,它会引起问题吗?

代码语言:javascript
运行
复制
public class MyBroadCastReceiver extends BroadcastReceiver {

    boolean isFirstTrigger = true;

    @Override
    public void onReceive(Context context, Intent arg1) {
      if(isFirstTrigger)
       {
        //Do something time consuming
        isFirstTrigger = false;
       }
      }
EN

Stack Overflow用户

回答已采纳

发布于 2013-09-06 16:54:12

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

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

如果我有在onReceive()方法中使用的任何类级变量,并且onReceive()方法被快速多次调用,它会引起问题吗?

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

票数 7
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18662618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档