Я новичок в Android, и мне нужна помощь. Итак, у меня есть процедура с подпрограммами внутри. Как я могу закончить один, прежде чем начинать новый. Вот код, чтобы лучше понять:Завершить процедуру перед тем, как начинать новую.
public void onCellLocationChanged(CellLocation lokacija) {
super.onCellLocationChanged(lokacija);
location = (GsmCellLocation) Phone.getCellLocation();
textCellId.setText(String.valueOf(location.getCid() % 65536));
textCellLac.setText(String.valueOf(location.getLac()));
String JSON_URL_string=JSON_URL + "?cellid=" + String.valueOf(location.getCid()%65636);
getJSON(JSON_URL_string);
myJSONString = textCellNameSakriven.getText().toString();
ParseJSON(myJSONString);
}
Проблема заключается в том, что myJSONString пуст, причиной textCEllNameSkriven тоже пусто. Это textView textCellNameSkriven выполняется, когда getJSON (JSON_URL_string) завершен. Если я запустил отладчик и пошел шаг за шагом, приложение переходит непосредственно из строки getJSON (JSON_URL_string) в следующую и следующую и т. Д.
Редактировать: Возможно, проблема в том, что onPostExecute не завершен перед запуском ParseJSON. Здесь также код getJSON:
private void getJSON(String url) {
class GetJSON extends AsyncTask<String, Void, String> {
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(MainActivity.this, "Please Wait...", null, true, true);
}
@Override
protected String doInBackground(String... params) {
String uri = params[0];
BufferedReader bufferedReader = null;
try {
URL url = new URL(uri);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
StringBuilder sb = new StringBuilder();
bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json;
while ((json = bufferedReader.readLine()) != null) {
sb.append(json + "\n");
}
return sb.toString().trim();
} catch (Exception e) {
return null;
}
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
textCellNameSakriven.setText(s);
}
}
GetJSON gj = new GetJSON();
gj.execute(url);
}
Привет, спасибо за ответ. Можете ли вы предложить мне решение с кодом? Заранее спасибо. –
дали краткий план, отдых, который вы можете взять оттуда –