Android SDK。在新线程中访问旧变量

时间:2012-04-25 15:24:05

标签: android multithreading android-2.2-froyo runnable

我已经能够在新线程中调用http post进程,但是通过post发送的变量根据另一个变量posttype的值而变化,posttype是在运行此线程之前设置的。

确定通过帖子发送的值的变量设置为:public String posttype = "load";

在新线程运行之前,posttype设置为“load”或“unload”。根据这些值,确定通过邮寄发送的数据。

我使用的新线程函数来自:http://android-developers.blogspot.com/2009/05/painless-threading.html

我使用上面链接中runnable显示的SECOND函数。

在第一个run()内,我通过http发送变量。在第二个run()内部,我解析返回的变量。

问题是:我无法访问posttype的值,并且总是选择新线程函数中的else语句,因为if语句无法访问变量posttype。

如何使变量posttype真正全局或可由新线程使用?

谢谢,

1 个答案:

答案 0 :(得分:1)

如果我做对了,你就无法访问变量,因为它不是最终的。如果是这样,您可以获取与posttype相同类型的最终变量,为其赋值并在第二次运行中使用它。 为了更清楚,请查看我对此问题的回答:final variable issue in an inner class

在这种情况下,侦听器在适用相同逻辑的情况下运行。