Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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
Java Android杀死我的线程/异步任务_Java_Android_Android Asynctask - Fatal编程技术网

Java Android杀死我的线程/异步任务

Java Android杀死我的线程/异步任务,java,android,android-asynctask,Java,Android,Android Asynctask,我运行活动的asynctask类,然后完成活动,asynctask仍然有效。安卓在一段时间后终止了我的任务。我试图添加到函数run“Process.setThreadPriority(Process.THREAD_PRIORITY_前台);”或“Process.setThreadPriority(Process.THREAD_PRIORITY_后台);”但asynctask仍然被终止 是的,我知道它们是服务,但我希望任务在工作完成后完成,并且不要一直在后台作为服务工作。您应该使用IntentSe

我运行活动的asynctask类,然后完成活动,asynctask仍然有效。安卓在一段时间后终止了我的任务。我试图添加到函数run
“Process.setThreadPriority(Process.THREAD_PRIORITY_前台);”
“Process.setThreadPriority(Process.THREAD_PRIORITY_后台);”
但asynctask仍然被终止


是的,我知道它们是服务,但我希望任务在工作完成后完成,并且不要一直在后台作为服务工作。

您应该使用
IntentService
。这与常规服务不同
IntentService
将导致
服务在完成后自动关闭
IntentService
未在UI线程上运行,因此您不需要像处理服务那样“处理”它。。 你启动它,它会做一些工作,当它完成时,它会自动关闭,这正是你所需要的

您无法确保
Asynctask
任务将完成,因为它不是为此目的构建的


另外,
服务
也不是“运行”的,因为即使它是打开的,也不需要做任何事情。AsyncTask是为简短的后台线程而设计的,而不是长时间运行的操作。如果你需要一些比你的活动更长的东西,那么就创建一个服务。哦,我忘了补充一点,这个任务是连接到服务器套接字,大数据传输和网络操作只能在不同于UI线程的线程上执行。1.intentservice是否阻止UI线程?2.如果我运行intentservice,然后完成()活动,那么intentservice是否会被系统终止。不,我忘记了。意图服务未在UI线程上运行(常规服务确实在UI线程上运行)。它非常适合你的需要。它正是为这样的事情而设计的。//this-activity-Intent-service\u Intent=new Intent(this,App.FtpSendFileIntentService.class);startService(服务意向);完成();当系统需要RAM时,服务\u意图仍被系统终止。请确保它是。。。你绝对没有办法阻止操作系统阻止你。没有什么。当您使用一个服务(或IntentService)时,它将获得最高优先级,并将在您的所有活动被终止后的最后一段时间内被终止。你可以停止寻找一种“神奇”的方式,它并不存在。有一种方法你不会喜欢。。。如果你使用一个服务,你可以使它“粘性”,然后如果操作系统杀死它并再次运行你的代码,它就会重新启动。