Java 为什么异步任务对象不能执行两次?

Java 为什么异步任务对象不能执行两次?,java,android,multithreading,asynchronous,Java,Android,Multithreading,Asynchronous,如果我尝试两次执行异步任务,就会得到一个非法的状态异常 07-29 18:14:21.290: ERROR/AndroidRuntime(9080): FATAL EXCEPTION: main 07-29 18:14:21.290: ERROR/AndroidRuntime(9080): java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be

如果我尝试两次执行异步任务,就会得到一个非法的状态异常

07-29 18:14:21.290: ERROR/AndroidRuntime(9080): FATAL EXCEPTION: main
07-29 18:14:21.290: ERROR/AndroidRuntime(9080): java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be executed only once)
07-29 18:14:21.290: ERROR/AndroidRuntime(9080):     at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:541)
07-29 18:14:21.290: ERROR/AndroidRuntime(9080):     at android.os.AsyncTask.execute(AsyncTask.java:499)

我可以通过创建异步任务的另一个对象来克服它。但这引出了一个问题——为什么我不能执行异步任务两次?是不是因为异步任务像一个线程?这也让我想知道为什么一个线程不能运行两次?为什么JAVA框架是以这种方式制作的?

@nobalG感谢您的回答。但我还是不明白为什么会这样做。我知道我们不能启动线程,因为它已经启动了,但为什么我不能在它完成执行后重用它呢,这些故事很深奥(高达操作系统级别)@nobalG,这都是因为它为我指明了正确的方向。