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

问题描述:

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

根据定义,线程是应用程序的一部分。然后,无法在应用程序外部添加线程。

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

因为这个,你的选择是:

1)要离开你的应用程序运行在后台,并连接到它。

2)使用服务方式。

希望这可以帮助你理解。

+0

感谢BTC来源。我很清楚,我认为如果我能够在一个单独的过程中运行一个线程,而不是从一个被调用的线程运行,那么这个工作就可以完成。但在这方面我没有什么想法。感谢您清除我的怀疑! – 2015-03-02 07:19:10

+1

只是给它一些参考:http://developer.android.com/guide/components/tasks-and-back-stack.html。在这里,您了解应用程序如何基于活动。我可以把服务文件,但你似乎已经很好地知道它;) – 2015-03-02 07:27:08

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