Android 将参数传递给AsyncTask并对其进行更改

Android 将参数传递给AsyncTask并对其进行更改,android,multithreading,android-asynctask,parameter-passing,Android,Multithreading,Android Asynctask,Parameter Passing,我有一个AsyncTask,它可以做一些事情: private class Task extends AsyncTask<Foo, Void, Boolean> { @Override protected Boolean doInBackground(Foo... params) { // send foo to server; } } AsyncTask后台中的foo值是否始终为旧值?或者可能是在AsyncTask执行其任

我有一个AsyncTask,它可以做一些事情:

private class Task extends
        AsyncTask<Foo, Void, Boolean> {

    @Override
    protected Boolean doInBackground(Foo... params) {
        // send foo to server;
    }
}
AsyncTask后台中的foo值是否始终为旧值?或者可能是在AsyncTask执行其任务之前将foo的值设置为0


谢谢

异步任务在不同的线程上运行,线程之间的通信应该通过使用处理程序的线程消息传递来完成。您不能像现在这样更改异步任务成员的值

这是一个很好的教程,介绍了线程、asyn任务和处理程序:


还有更多使用处理程序的示例:,使用处理程序执行动画:

我不想让他们交流。我想将foo的值发送到另一个线程中的服务器(而不是暂停应用程序)。但同时,我是否可以将foo的值设置为另一个值(在主线程中),以使用该新值继续主线程计算,而不影响传递给AsyncTask的值?但是如果同时更改线程和主线程中的值,则会出现问题,如果要访问共享变量,必须使用同步化块锁定访问:。是的,但它仅在主线程中更改,而不是在AsyncTask中更改(只是发送到服务器)。也许我应该带一份foo。。。
new Task().execute(foo);
foo.setValue(0);