将警报管理器与广播接收器结合使用——它会在主线程上运行吗?

问题描述 投票:0回答:1

我想使用

AlarmManager
向我的
BroadcastReceiver
广播一条消息,它将在预定时间执行一些工作。

但是,我想确保在执行这项工作时不会阻塞主线程。从一些搜索看来,

onReceive
函数将由android在主线程上调用,但是
AlarmManager
似乎在应用程序的上下文之外运行(因为即使应用程序处于打瞌睡模式,它也会发送警报) .

这最终会阻塞主线程吗?

android broadcastreceiver alarmmanager
1个回答
0
投票

https://developer.android.com/reference/android/content/BroadcastReceiver#onReceive(android.content.Context,%20android.content.Intent)

该方法在BroadcastReceiver接收Intent广播时被调用。在此期间,您可以使用 BroadcastReceiver 上的其他方法来查看/修改当前结果值。 此方法始终在其进程的主线程中调用,除非您明确要求使用 Context.registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler) 将其安排在不同的线程上

© www.soinside.com 2019 - 2024. All rights reserved.