【发布时间】:2013-12-15 12:31:04
【问题描述】:
这里我举了一个小例子来说明我在使用全局变量和 AsyncTasks 时遇到的问题。我已经从文件中读取数据并将该数据分配给字符串,并在 onPostExecute() 方法中将该字符串分配给全局变量。但是,当我为 TextView 分配“aString”变量时,输出仍然是“无”。
我知道,如果您在 onPostExecute() 方法中进行 TextView 分配,它会起作用,但是如果我想在 AsyncTask 之外的方法中使用数据怎么办。
有人可以帮忙吗,我想我没有得到什么?
public class GoodAsync extends Activity{
TextView tv;
String aString = "nothing";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.asynctasks);
new AsyncTasker().execute();
tv = (TextView) findViewById(R.id.async_view);
tv.setText(aString);
}
private class AsyncTasker extends AsyncTask<String, Integer, String>{
@Override
protected String doInBackground(String... arg0) {
AssetManager am = GoodAsync.this.getAssets();
String string = "";
try {
// Code that reads a file and stores it in the string variable
return string;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
aString = result;
}
}
}
【问题讨论】:
标签: java android android-asynctask global-variables