在后台运行许多进程的最佳方法

时间:2014-04-15 11:03:22

标签: android performance service broadcastreceiver multiprocessing

我必须实现让我在后台同时运行许多进程的东西。问题是我不知道从一开始有多少人和所有人必须以相同的方式处理,但具有不同的参数。我想知道在效率和电池成本方面实施它的最佳方法是什么。任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

要添加建议{​​{1}}的答案 - 根据您的要求,您需要考虑Service代码将在主应用程序线程上运行,就像{Service内部的代码一样1}}。

Excerpt from the Service page in the Developer Guide

  

警告:服务在其托管进程的主线程中运行 -   service不会创建自己的线程,也不会单独运行   过程(除非您另行指定)。这意味着,如果你的   服务将进行任何CPU密集型工作或阻塞操作   (如MP3播放或网络),你应该创建一个新的线程   在服务范围内做这项工作。通过使用单独的线程,你   将降低应用程序无响应(ANR)错误的风险   应用程序的主线程可以保持专用于用户交互   与您的活动。

这意味着它与运行后台线程不同。

如果您需要真正的后台处理,则应考虑在Activity启动的后台线程中运行每个进程。

Service允许您在应用不在前台时运行。多个线程允许它运行主UI线程。


在管理这些多线程方面,请考虑使用类似ThreadPoolExecutor的内容。对此问题的每个方面的完整描述超出了这个问题的范围,但我相信通过阅读开发者指南链接,您将学到很多东西。它们提供了许多细节以及一些演示代码。