我试图将我的mysql数据库中的数据导入到Android应用程序中,因此即使手机未连接到互联网也可以使用它。为此,我使用asynctask在后台运行。现在问题是这个代码是在其他类中编写的,并且数据存储在该类的变量中。所以我根本无法访问该类外部变量的内容。我已经尝试了所有的东西,比如将它分配给同一类型的静态变量,这是其他类,将数据写入文件,共享偏好,但由于代码实际上是一种函数,我得到文件操作和共享首选项的错误。我的代码如下: public static boolean flag = false,otpStatus = false,otpcheckDone = false; public StaticUserUser fromClient,fromServer; public static String resp; SharedPreferences共享偏好;
public static class LongOperation extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
if (getUserData) {
getUserData = false;
String METHOD_NAME = "user";
SoapObject request = new SoapObject(
CommonData.NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(
CommonData.URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
resp = resultsRequestSOAP
.getPrimitivePropertyAsString("return");
upd = (UpdateData) stringToObject(resp);
MainActivity.upd = upd;
LoginActivity.setupd((UpdateData) stringToObject(resp));
LoginActivity.upd = upd;
addtoDatabase ad =new addtoDatabase(null, null, null, 1);
addtoDatabase.firstTime=true;
ad.addData(upd);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
请注意,UpdateData是从库文件访问的类。休息一切正常,我得到回应和所有,但我只是无法访问变量,这里&#39; upd&#39;,在任何地方以外。正如您所看到的,我已经尝试将其存储在另一个类“LoginActivity&#39;变量LoginActivity.upd,但即使这样说该对象为null,尽管我可以看到原始数据&#34; upd&#34;当我做sysout时
所以我需要一种方法来访问&#34; upd&#34;课外变量。 我使用:
调用该函数CommonData.getUserData=true;
lo = new LongOperation();
lo.execute("");