【发布时间】:2015-04-16 01:56:01
【问题描述】:
这里有一个问题: 在 Android 代码中,如果我声明了一个异步任务:
重要编辑:所有这些任务都通过执行器并行执行。我没有连续执行它们,在这种情况下,其中一些答案是显而易见的。
AsynchronousTask task1 = new AsynchronousTask();
task1.execute();
我在该任务完成之前实例化另一个任务:
task1 = new AsynchronousTask();
旧任务是否完成了它的工作,还是被垃圾回收器拾取?
如果我创建了一个等待 task1 完成的监听器:
FinishListener finishListener = new FinishListener()
{
//do stuff
}
AsynchronousTask task1 = new AsynchronousTask(finishListener);
task1.execute();
我以这种方式覆盖 task1 并执行它:
task1 = new AsynchronousTask(finishListener);
task1.execute()
监听器会在旧任务 1 或新任务 1 完成时触发吗?
如果我重新实例化侦听器,这种情况会改变吗?
FinishListener finishListener = new FinishListener()
{
//do stuff
}
AsynchronousTask task1 = new AsynchronousTask(finishListener);
task1.execute();
finishListener = new FinishListener()
{
//do different stuff
}
task1 = new AsynchronousTask(finishListener);
task1.execute();
【问题讨论】:
标签: java android multithreading asynchronous thread-safety