Android 杀了我的 Threads/AsyncTasks
Android kills my Threads/AsyncTasks
我 运行 我的 activity 的异步任务 class,然后完成 activity,异步任务仍然有效。 Android 一段时间后终止了我的异步任务。我试图添加到函数 运行 "Process.setThreadPriority (Process.THREAD_PRIORITY_FOREGROUND);"
或 "Process.setThreadPriority (Process.THREAD_PRIORITY_BACKGROUND);"
但 asynctask 仍然被杀死。
是的我知道他们是Services,但我希望工作完成后任务完成,而不是一直在后台工作作为Services。
你应该使用 IntentService
。这与常规服务不同。 IntentService
将导致 service
在完成后自行关闭。 IntentService
不是 UI 线程上的 运行,因此您不需要 "handle" 它,因为您需要处理服务。
你启动它,它会做一些工作,当它完成时它会自行关闭,这正是你所需要的。
您无法确保 Asynctask
会完成,因为它不是为此目的而构建的。
此外,service
不是 "running",即使打开也无事可做时 cpu。
我 运行 我的 activity 的异步任务 class,然后完成 activity,异步任务仍然有效。 Android 一段时间后终止了我的异步任务。我试图添加到函数 运行 "Process.setThreadPriority (Process.THREAD_PRIORITY_FOREGROUND);"
或 "Process.setThreadPriority (Process.THREAD_PRIORITY_BACKGROUND);"
但 asynctask 仍然被杀死。
是的我知道他们是Services,但我希望工作完成后任务完成,而不是一直在后台工作作为Services。
你应该使用 IntentService
。这与常规服务不同。 IntentService
将导致 service
在完成后自行关闭。 IntentService
不是 UI 线程上的 运行,因此您不需要 "handle" 它,因为您需要处理服务。
你启动它,它会做一些工作,当它完成时它会自行关闭,这正是你所需要的。
您无法确保 Asynctask
会完成,因为它不是为此目的而构建的。
此外,service
不是 "running",即使打开也无事可做时 cpu。