Cześć. Mam taki problem. Kiedy wchodzę w Activity "ChooseCity" automatycznie wysyłam Request GET przy użyciu Volley który zwraca mi listę miast. Kiedy nacisnę przycisk back, wrócę do poprzedniego Activity i ponownie wejdę do Activity "ChooseCity" widzę, że Request nie jest ponownie realizowany.
Czy ktoś mógłby mi wytłumaczyć o co w tym chodzi ? W końcu po ponownym wejściu do Activity wywołują się te same metody, co za pierwszym wejściem, a jednak część metod się nie wywołuje.
**Logi **
ChooseCity Activity
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
import android.widget.EditText;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import breakthecode.com.clickandgo.R;
import breakthecode.com.clickandgo.classes.AppSharedPreferencesHelper;
import breakthecode.com.clickandgo.entity.City;
import breakthecode.com.clickandgo.recyclerviews.CitiesFromRecViewAdapter;
import breakthecode.com.clickandgo.temporary.ClassOfTempLists;
public class ChooseCityFromActivity extends AppCompatActivity {
private static final String TAG = "myLogs ChooseCity";
private static String SERVER_URL = "***";
private AppSharedPreferencesHelper sharedPrefs;
private boolean isCityFromPicked, isCityToPicked;
private RecyclerView cityRecView;
private EditText chooseCityFromSearchEditText;
private List<City> listOfCities;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose_city_from);
settings();
loadData();
initWidgets();
loadWidgetsData();
setOnClickListeners();
setUpRecyclerView();
}
private void settings(){
Log.d(TAG, "settings: ");
getSupportActionBar().hide();
}
private void initWidgets(){
Log.d(TAG, "initWidgets: ");
cityRecView = findViewById(R.id.choose_cityFrom_recView);
chooseCityFromSearchEditText = findViewById(R.id.chooseCityFromSearchEditText);
chooseCityFromSearchEditText.setFocusableInTouchMode(true);
}
private void setOnClickListeners(){
Log.d(TAG, "setOnClickListeners: ");
}
private void setUpRecyclerView(){
Log.d(TAG, "setUpRecyclerView: ");
listOfCities = new ArrayList<>();
requestListOfAllCities();
}
private void loadData(){
Log.d(TAG, "loadData: ");
sharedPrefs = new AppSharedPreferencesHelper(this, "Shared_Preferences");
isCityFromPicked = sharedPrefs.isCityFromPicked();
isCityToPicked = sharedPrefs.isCityToPicked();
}
private void loadWidgetsData(){
Log.d(TAG, "loadWidgetsData: ");
}
public void requestListOfAllCities(){
Log.d(TAG, "requestListOfAllCities: ");
SERVER_URL = SERVER_URL + "/api/cities";
listOfCities = new ArrayList<>();
RequestQueue queue = Volley.newRequestQueue(this);
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, SERVER_URL, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, "onResponse: ");
for (int i = 0; i < response.length(); i++) {
try {
JSONObject songObject = response.getJSONObject(i);
City city = new City();
city.setId(songObject.getInt("id"));
city.setCityName(songObject.getString("cityName"));
city.setBusStopName(songObject.getString("busStopName"));
listOfCities.add(city);
} catch (JSONException e) {
e.printStackTrace();
}
}
sharedPrefs.setListOfCitiesFromRequest(listOfCities);
CitiesFromRecViewAdapter adapter = new CitiesFromRecViewAdapter(getApplicationContext());
cityRecView.setAdapter(adapter);
cityRecView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
cityRecView.setItemAnimator(new DefaultItemAnimator());
layoutAnimation(cityRecView);
adapter.setListOfCities(listOfCities);
adapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
queue.add(jsonArrayRequest);
}
private void layoutAnimation(RecyclerView recView){
Log.d(TAG, "layoutAnimation: ");
Context context = recView.getContext();
LayoutAnimationController layoutAnimationController = AnimationUtils.loadLayoutAnimation(context, R.anim.layout_fall_down);
recView.setLayoutAnimation(layoutAnimationController);
recView.getAdapter().notifyDataSetChanged();
recView.scheduleLayoutAnimation();
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume: ");
chooseCityFromSearchEditText.clearFocus();
}
@Override
public void onBackPressed() {
super.onBackPressed();
Log.d(TAG, "onBackPressed: ");
Intent intent = new Intent(ChooseCityFromActivity.this, MainPanelActivity.class);
startActivity(intent);
}
}