我想我知道答案,但AsyncTask在调用Activity finish()
之后是否继续存在?
protected void onPreExecute() {
Toast.makeText(getApplicationContext(), "Your data is processing.", Toast.LENGTH_LONG);
finish();
}
编辑:到目前为止两个不同的答案:)
答案 0 :(得分:13)
AsyncTask绑定到UI线程,如果Activity完成,则异步任务被取消。
[update] - 下面的Hackbod评论是正确的。应该注意的是,AsyncTasks意味着短暂存在,因此不必担心这个问题。 AsycTask只有在完成时才会真正消失,或者在完成调用后可能会或可能不会发生过程被杀死。
答案 1 :(得分:1)
它一直运行直到onPostExecute
完成。
答案 2 :(得分:1)
我在使用异步任务方面遇到了一些奇怪的问题,如果某个活动被操作系统杀死,并且应用程序恢复时,AsyncTasks有时根本不会运行。我不确定为什么他们会进入这种状态。如果在自己的执行程序线程中执行AsyncTasks,则不会发生这种情况。我可能会遇到一些奇怪的情况。认为无论如何在这里发帖可能是有用的:)。
答案 3 :(得分:0)
异步任务一直运行,直到onPostExecute()完成。
通过在finish()和onPostExecute()上放一个吐司来尝试,看看哪个吐司首先显示。
答案 4 :(得分:0)
Asynctask不受任何活动或服务生命周期方法的约束。
它继续在一个单独的线程中运行,直到onPostExecute()在主线程中执行。
答案 5 :(得分:0)
异步任务不会影响活动生命周期或任何配置更改。它们一直运行直到onPostExecute()方法被调用。
应该使用服务来代替长时间运行。