gpt4 book ai didi

安卓广播接收器 : Can they execute simultaneously or do they always execute consecutively?

转载 作者:行者123 更新时间:2023-11-29 14:05:59 26 4
gpt4 key购买 nike

我对广播接收器有点困惑。我有一个广播接收器,它在 TIME_SET 和 TIMEZONE_CHANGED 操作时触发(代码在下面给出)。我想知道的是,当 TIME_SET 和 TIMEZONE_CHANGED Action 都被触发时,OnDateTimeChanged(见下面的代码)是否可以同时触发(并且它的执行重叠),或者总是一个接一个地触发?根据我所做的一些简单实验,我得到的印象是 OnDateTimeChanged 的​​两次执行是连续触发的,没有时间重叠,但我不能 100% 确定这一点。如果有人有想法,我会很高兴。

<!-- Excerpt from manifest -->
<receiver android:name=".OnDateTimeChanged">
<intent-filter>
<action android:name="android.intent.action.TIME_SET"/>
<action android:name="android.intent.action.TIMEZONE_CHANGED"/>
</intent-filter>
</receiver>


// Broadcast receiver class
public class OnDateTimeChanged extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
// Do some work here
}
}

顺便说一句,当您在设置 - 日期和时间下切换到自动模式时,TIME_SET 和 TIMEZONE_CHANGED 都可以被触发,这会同时更改时间和时区。

-阿里

最佳答案

从逻辑上讲,它们会同时执行。从物理上讲,一次只有一个人可以占据一个核心,并且可能会在另一个人开始之前完成。在相同的条件下,行为可能看起来是一致的。文档本身将其描述为“广播的所有接收器都以未定义的顺序运行,通常同时运行。”

如果你想给其他接收者一个运行的机会,你可以调用Thread.yield()。

关于安卓广播接收器 : Can they execute simultaneously or do they always execute consecutively?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6972392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com