【发布时间】:2014-03-07 18:29:34
【问题描述】:
正如标题所述,我试图在运行 asynctask 时更新我的 UI 线程中的某些内容。我已经阅读了很多关于 asynctask 的内容,看来我应该能够更改 onPostExecute() 方法中的变量。显然情况并非如此。
这是我的示例代码:
TextView tv = (TextView) findViewById(R.id.thingsThatNeedToBeUpdated);
Login login = new Login();
login.execute(userName, password);
这里是登录类
public class Login extends AsyncTask<String, void, String>{
public String doInBackground(String... params){
logMeIn(params[0], params[1]);
}
public void onPostExecute(String update){
tv.setText(result); //this is not working!!
}
实际发生的事情是电视带有红色下划线,eclipse 说我需要创建一个局部变量.. 但我认为 onPostExecute 是从 UI 线程运行的?困惑:?
我正在尝试做我在this 网站上找到的东西。我不完全确定我在做什么,我会喜欢正确的方向!提前致谢。
【问题讨论】:
-
我更新了问题以进一步确定问题
-
登录在不同的 .java 类中?
-
你在哪里实例化电视?因为 findViewById() 肯定会在您的 activesync 中返回 null 吗?
-
老实说,要为您指明正确的方向,您应该阅读一本好的 Java 书籍,似乎您对变量范围一无所知,这是在 Android 中前进之前的基本知识......
-
谢谢,我解决了这个问题并接受了我用来解决这个问题的答案!
标签: java android multithreading android-asynctask