【问题标题】:Which is more efficient? - A single thread and n broadcast receivers OR n independent threads哪个更有效率? - 单个线程和 n 个广播接收器或 n 个独立线程
【发布时间】:2015-07-04 11:45:44
【问题描述】:

我有一个场景,其中需要以恒定间隔重复运行“N”个独立代码 sn-ps。以下哪一项会更有效?

  1. 一个线程以恒定间隔重复发送广播,并为此操作注册了 N 个 BroadcastReceiver。

  2. N个线程独立运行并重复运行代码。

或者有更好的方法吗?

【问题讨论】:

  • 有时,我希望那些投反对票的人会添加评论并解释他们投反对票的原因。这是其中之一。

标签: android multithreading design-patterns broadcastreceiver


【解决方案1】:

我建议使用单个后台线程,但不建议使用您建议的方法。 根据您的情况:

如果要在应用程序处于前台时频繁执行代码,我会创建一个与工作线程关联的处理程序。然后使用 Handler.postDelayed() 发布您的工作以供将来执行。当一个 Runnable 完成执行时,它应该重新发布自己。

如果要在后台执行代码,请使用 AlarmManager 安排 IntentService 执行的工作,并尽可能使用不精确重复,以便系统批处理后台工作以节省电池寿命。 IntentService 将自动创建一个后台线程来处理您的工作并按顺序处理 Intent,然后在完成后停止。

【讨论】:

    猜你喜欢
    • 2021-06-03
    • 2015-10-05
    • 2021-12-18
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多