Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:在应用程序范围外的单独线程中运行任务_Android_Threadpool_Remote Process - Fatal编程技术网

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

Android:在应用程序范围外的单独线程中运行任务,android,threadpool,remote-process,Android,Threadpool,Remote Process,我试图在android中使用线程池执行器(最大线程大小为5)在单独的线程中执行特定任务,确保一次可以运行五个并行任务。但这种方法的问题是,当我关闭应用程序时,线程也将被终止。我希望这个超出应用范围。 我本可以选择为AIDL服务的。但问题是,我需要继续绑定和解除绑定到服务,并且需要在发送对象之前打包对象。当任务完成时,我还需要与调用应用程序通信。这是我如何通过广播实现的。我想知道我是否可以让一个线程在一个单独的进程中运行,或者我只需要使用AIDL?请帮我理解 服务听起来像是您想要的(因为即使应用程

我试图在android中使用线程池执行器(最大线程大小为5)在单独的线程中执行特定任务,确保一次可以运行五个并行任务。但这种方法的问题是,当我关闭应用程序时,线程也将被终止。我希望这个超出应用范围。
我本可以选择为AIDL服务的。但问题是,我需要继续绑定和解除绑定到服务,并且需要在发送对象之前打包对象。当任务完成时,我还需要与调用应用程序通信。这是我如何通过广播实现的。我想知道我是否可以让一个线程在一个单独的进程中运行,或者我只需要使用AIDL?请帮我理解

服务听起来像是您想要的(因为即使应用程序离开,它也可以继续运行)。AIDL的东西更让人痛苦,但这正是你需要做的,才能获得你想要的行为。

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

当你的应用程序既不创建也不使用新线程时,你运行的是一个主线程,它使用操作系统分配给应用程序的全部CPU时间

因此,您可以选择:

1) 让你的应用程序在后台运行并连接到它

2) 使用服务方式


希望这有助于您理解。

感谢BTC来源。我很清楚,我想如果我能让一个线程在一个单独的进程中运行,而不是在一个被调用的进程中运行,那么这项工作就完成了。但在这方面我几乎一无所知。谢谢你消除我的疑虑!只是想提供一些关于它的参考:。在这里,您可以了解应用程序是如何基于活动的。我可以把服务文档放进去,但你似乎已经很了解了;)