Android : 运行 应用程序范围外的单独线程中的任务
Android : Run A task in a separate thread outside application scope
我正在尝试在 android 中的单独线程中执行特定任务,使用最大线程大小为 5 的线程池执行器确保可以有五个并行任务 运行时间。但是这种方法的问题是当我关闭我的应用程序时,线程也会被杀死。我希望它 运行 超出应用范围。
我本可以选择使用 AIDL 服务。但问题是我需要继续绑定和取消绑定到服务,我需要在发送对象之前打包对象。此外,当任务完成时,我需要与调用应用程序进行通信。我可以使用广播来实现这一点。我想知道我是否可以在单独的进程中创建一个线程 运行,或者我只需要使用 AIDL?请帮助我理解!
服务听起来像您想要的(因为即使应用程序消失,它也可以保留 运行)。 AIDL 的东西更让人痛苦,但这是你需要做的才能获得你所要求的行为。
根据定义,线程是应用程序的一部分。那么,应用程序外就不可能有线程了。
如果您的应用程序既不创建也不使用新线程,那么您就是 运行 主线程,它使用 OS 分配给应用
自此,您的选择是:
1) 将您的应用 运行 留在后台并连接到它。
2) 使用服务方式
希望这能帮助你理解。
我正在尝试在 android 中的单独线程中执行特定任务,使用最大线程大小为 5 的线程池执行器确保可以有五个并行任务 运行时间。但是这种方法的问题是当我关闭我的应用程序时,线程也会被杀死。我希望它 运行 超出应用范围。 我本可以选择使用 AIDL 服务。但问题是我需要继续绑定和取消绑定到服务,我需要在发送对象之前打包对象。此外,当任务完成时,我需要与调用应用程序进行通信。我可以使用广播来实现这一点。我想知道我是否可以在单独的进程中创建一个线程 运行,或者我只需要使用 AIDL?请帮助我理解!
服务听起来像您想要的(因为即使应用程序消失,它也可以保留 运行)。 AIDL 的东西更让人痛苦,但这是你需要做的才能获得你所要求的行为。
根据定义,线程是应用程序的一部分。那么,应用程序外就不可能有线程了。
如果您的应用程序既不创建也不使用新线程,那么您就是 运行 主线程,它使用 OS 分配给应用
自此,您的选择是:
1) 将您的应用 运行 留在后台并连接到它。
2) 使用服务方式
希望这能帮助你理解。