Проблема с JSON, не присваивается значение переменной

Я новичок в java. У меня возникла неприятная проблема. У меня переменная должна получать ссылку, которая прописана в json. Она получает ее, но только в этой функции: Тоесть если я впишу туда (Toast) showMessage(URL_LAUNCHER); то выходит сообщение с ссылкой, как надо

public void loadJSONFromURL(String url) // надо переписать
    {
        StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>()//new Response.Listener< String>()
        {
            @Override
            public void onResponse(String response) {
                try {
                    JSONObject links = new JSONObject(response);
                    URL_CLIENT = links.getString("URL_CLIENT");
                    URL_FILES = links.getString("URL_FILES");
                    URL_CACHE = links.getString("URL_CACHE");
                    URL_LAUNCHER = links.getString("URL_LAUNCHER");
                    URL_NEWS = links.getString("URL_NEWS");
                    LAUNCHER_ACTUAL_VERSION = links.getString("LAUNCHER_ACTUAL_VERSION");
                    showMessage("Ссылка на лаунчер:"+URL_LAUNCHER);
                    CheckUpdateLauncher();
                } catch (JSONException e) {
                    showMessage("JSON ERROR");
                    e.printStackTrace();
                }
            }
        },
                new Response.ErrorListener(){
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(getApplicationContext(),error.getMessage(),Toast.LENGTH_SHORT).show();
                    }
                });
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

А если я в других функциях попробую вывести: showMessage(URL_LAUNCHER), то будет пустая строка

UPD. New code:

private void loadJSONFromURL(String url) // надо переписать
    {
        StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>()//new Response.Listener< String>()
        {
            @Override
            public void onResponse(String response) {
                try {
                    JSONObject links = new JSONObject(response);
                    String URL_CLIENT = links.getString("URL_CLIENT");
                    String URL_FILES = links.getString("URL_FILES");
                    String URL_CACHE = links.getString("URL_CACHE");
                    String URL_LAUNCHER = links.getString("URL_LAUNCHER");
                    String URL_NEWS = links.getString("URL_NEWS");
                    String LAUNCHER_ACTUAL_VERSION = links.getString("LAUNCHER_ACTUAL_VERSION");
                    Download(URL_LAUNCHER, PATH_DOWNLOADS);
                    showMessage("Ссылка на лаунчер:"+URL_LAUNCHER);
                    if(LAUNCHER_VERSION != LAUNCHER_ACTUAL_VERSION) {
                            /*File file = new File(PATH_LAUNCHER, "launcher" + ".apk");
                            if (file.exists()) {
                                file.delete();
                            }*/
                            Download(links.getString("URL_LAUNCHER"), PATH_DOWNLOADS);
                            InstallAPK("launcher");
                    } else showMessage("Обновлений для лаунчера нет");
                } catch (JSONException e) {
                    showMessage("JSON ERROR");
                    e.printStackTrace();
                }
            }
        },
                new Response.ErrorListener(){
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(getApplicationContext(),error.getMessage(),Toast.LENGTH_SHORT).show();
                    }
                });
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

private void Download(final String _url, final String _path)
    {
        FileUtil.makeDir(FileUtil.getPackageDataDir(getApplicationContext()));
        android.net.ConnectivityManager connMgr = (android.net.ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        android.net.NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
        if (networkInfo != null && networkInfo.isConnected()) {
            final String urlDownload = _url;
            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(urlDownload));
            final String fileName = URLUtil.guessFileName(urlDownload, null, null);
            String Path = _path+fileName;
            File file = new File(Path);
            request.setDescription("URL - " + urlDownload);
            request.setTitle(fileName);
            request.allowScanningByMediaScanner();
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
            request.setDestinationInExternalPublicDir(_path, fileName);
            DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
            manager.enqueue(request);
        }
        else {
            showMessage("Нет интернет-соединения.");
        }

    }


Ответы (0 шт):