Android:在应用程序范围之外的单独线程中运行任务

时间:2015-03-02 07:02:29

标签: android threadpool remote-process

我正在尝试使用最大线程大小为5的线程池执行程序在android中的单独线程中执行特定任务,确保一次可以运行五个并行任务。但是这种方法的问题是当我关闭我的应用程序时,该线程也将被杀死。我希望这用完应用范围。          我本可以选择AIDL服务。但问题是我需要继续绑定并取消绑定到服务,我需要在需要发送之前包裹对象。此外,当任务完成时,我需要与调用应用程序进行通信。我可以用任何方式实现广播。我想知道如果我可以在一个单独的进程中运行一个线程,或者我只需要使用AIDL?请帮我理解!

2 个答案:

答案 0 :(得分:2)

根据定义,线程是应用程序的一部分。然后,在应用程序之外就不可能有一个线程。

如果您的应用程序永远不会创建也不会使用新线程,那么您将运行一个主线程,它使用操作系统分配给应用程序的完整CPU时间。

因此,您的选择是:

1)让您的应用在后台运行并连接到它。

2)使用服务方式。

希望这有助于您理解。

答案 1 :(得分:1)

服务听起来像你想要的(因为它可以继续运行,即使应用程序消失)。对于AIDL来说,这更令人痛苦,但这就是你需要做的事情来获得你所要求的行为。