将参数传递给AsyncTask并更改它们

时间:2012-04-29 09:46:30

标签: 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;
    }
}

在我的主要课程中,我做了类似的事情:

new Task().execute(foo);
foo.setValue(0);

AsyncTask背景中的foo值是否始终为旧值?或者,在AsyncTask执行任务之前,foo的值是否设置为0?

谢谢!

1 个答案:

答案 0 :(得分:0)

异步任务在另一个线程上运行,线程之间的通信应该通过使用处理程序的线程消息完成。您无法像正在执行的操作那样更改异步任务成员的值。

这是一个很好的教程,全部是关于线程,asyn任务和处理程序:http://www.vogella.com/articles/AndroidPerformance/article.html

使用处理程序的更多示例:http://code.google.com/p/meneameandroid/source/search?q=handleMessage&origq=handleMessage&btnG=Search+Trunk,使用处理程序执行动画:http://code.google.com/p/android-page-curl/source/browse/trunk/src/com/mystictreegames/pagecurl/PageCurlView.java