在android中有AsyncTask运行一个线程,然后我可以使用post执行的方法再次与主线程交互.在java中有相同的东西吗?我试图在单独的线程(doInBackground)上运行一个计时器,一旦时间结束,它将允许我与主要的theard交互以重新启动服务(onPostExecute将重新启动服务)
最佳答案
我不是Android开发人员,但我认为可以通过在Java 8上使用CompletableFuture轻松实现:
import java.lang.reflect.InvocationTargetException;
import java.util.concurrent.CompletableFuture;
import javax.swing.SwingUtilities;
public abstract class AsyncTask CompletableFutureCompletableFuture.supplyAsync( () -> doInBackground(params) );
// Invoke post execute
cf.thenAccept(this::onPostExecute);
return this;
}
}