我有一个做某事的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?
谢谢!
答案 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