【发布时间】:2013-12-23 18:45:35
【问题描述】:
我的班级中有一个名为String authToken 的全局变量。在这个类中,我有一个如下所示的 AsyncTask 和设置全局变量的 onPostExecute 方法。
class AuthToken extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... args) {
MyAccount myAccount = new MyAccount(getApplicationContext());
return myAccount.getAuthToken();
}
@Override
protected void onPostExecute(String fetchedToken) {
authToken = fetchedToken; //assign it to global variable
Log.d("Inside token: ", authToken);
}
}
我这样称呼它:
new AuthToken().execute();
Log.d("authToken: ", authToken+""); //print the fetched token
出于某种原因,即使onPostExecute 中的日志消息显示了 authToken,但在调用 execute() 之后,当我打印 authToken 时......它什么也没打印:
所以在我的日志中我看到:
D/Inside token:﹕ 75e7d526-d0eb-4cb2-b294-a57e5dc2e5e4
D/authToken: ]
问题
为什么我的全局变量没有在onPostExecute 之后设置?
【问题讨论】:
标签: java android android-asynctask android-activity