好的,这让我再次感到困惑。我正在尝试A:设置一个golbal变量,我可以做或B:从我的AsyncTask
中提取一个变量。我已设置可以设置asynctask的golbal变量,这很好,但是活动在使用asynctask设置之前调用它。
因此,我需要应用程序在调用golbal变量之前完成AsyncTask。
new createUser().execute();
Log.i("res", "After: " + Boolean.toString(MyProperties.getInstance().valut));
private class createUser extends AsyncTask<Void, Void, Boolean> {
ProgressDialog dialog = ProgressDialog.show(MainActivity.this, "",
"Creating User...", true);
Toast toast = Toast.makeText(getApplicationContext(), "",
Toast.LENGTH_SHORT);
@Override
protected Boolean doInBackground(Void... params) {
// TODO Auto-generated method stub
if (db.createUser(nameU.getText().toString(), userU.getText()
.toString(), emailU.getText().toString(), passU.getText()
.toString()) == false) {
return false;
} else {
return true;
}
}
protected void onPreExecute() {
dialog.show();
}
protected void onPostExecute(Boolean result) {
dialog.dismiss();
if (!result) {
toast.setText("User already exists!");
toast.show();
res = result;
MyProperties.getInstance().valut = res;
Log.i("res", Boolean.toString(MyProperties.getInstance().valut));
} else {
toast.setText("Success");
toast.show();
res = result;
MyProperties.getInstance().valut = res;
Log.i("res", Boolean.toString(MyProperties.getInstance().valut));
}
}
}
答案 0 :(得分:0)
使用onPostExecute
的{{1}}方法处理全局变量。您需要在AsyncTask
的孩子中实施它。调用此方法然后完成所有工作。
修改强>
AsyncTask
答案 1 :(得分:0)
两个问题: