Я использую Volley в своем приложении для загрузки данных json и использую клавишу c stati (cook ie), чтобы получить ответ и получить еще одного повара ie (sessionid). В моем приложении я выполняю вход для синхронизации c данных на фоне в MainActivity с настройками cook ie, например:
@Override
public Map<String, String> getHeaders(){
HashMap<String, String> headers = new HashMap<>();
headers.put("Authentication-Token", KLIC);
return headers;
}
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
Map headers = response.headers;
cookie = (String)headers.get("Set-Cookie");
saveCookie(cookie);
return super.parseNetworkResponse(response);
}
, а в моем LoginFragment я использую тот же метод (copy-paste и изменено) следующим образом:
@Override
public Map<String, String> getHeaders(){
HashMap<String, String> headers = new HashMap<>();
headers.put("Authentication-Token", KLIC);
return headers;
}
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
Map headers = response.headers;
cookie = (String)headers.get("Set-Cookie");
saveCookie(cookie);
return super.parseNetworkResponse(response);
}
метод MainActivity выполняется после запуска приложения, и полученный "sessionid" является правильным и работает хорошо. Метод LoginFragment также работает корректно, НО! Когда я запускаю приложение, вызывается MainActivity, и я выхожу и снова вхожу, метод LoginFragment НЕ ПОЛУЧАЕТ COOK IE (cook ie == null) - в противном случае Volley получает правильные json данные. Мне нужно перезапустить приложение, чтобы код снова заработал. После перезапуска я получаю повар ie (от MainActivity).
Это означает, что я должен перезапускать свое приложение каждый раз, когда пользователь выходит из системы и хочет войти сразу после.
Is это какое-то скрытое поведение Волли, которое я должен ожидать, или это может быть ошибкой? Заранее спасибо!