所以从我所知道的,如果我在AsyncTask
内部Activity
,当用户在完成之前退出Activity
时,该任务可能会被终止。我见过的一个解决方案是使用IntentService
,系统会努力不杀人。
我的问题是IntentService
只使用一个后台线程逐个运行所有任务。我有几个独立的任务,我希望同时运行,这会在UI中产生影响(不严重,但可能会让用户感到惊讶)。
我如何做到这一点?我想我可以有几个IntentService
但这看起来很尴尬而且不可扩展。如何维护具有良好优先级的线程池,以便它不会被系统轻易杀死?
如果我开始(正常)Service
,那么在那里启动一些AsyncTask
,这会导致更高的优先级吗?
非常感谢。
答案 0 :(得分:1)
我确定它不是你想让我告诉你的,但你可能需要重新考虑你的设计,而不是在后台运行这么多东西。这当然全部取决于你想要完成的目标,所以请详细说明你是否会在后台做些什么。
对于你问题的后半部分。启动服务并从那里启动AsyncTask
将不会产生任何更高的优先级。这是因为必须在UI线程上启动AsyncTask(如果从活动或服务级别启动,则相同)
如果您正在运行多个网络线程,请停止其非常糟糕的做法并浪费大量电池电量。你最好一次运行一个。