У меня активность андроида с фрагментом.
Во фрагменте я выбираю данные, используя модификацию, и устанавливаю статический флаг, чтобы при повторном переходе к этому фрагменту я снова ограничивал выборку данных.
Я также храню данные в одноэлементном экземпляре.
Но даже после того, как я уничтожил действие / закрыл приложение, статический флаг и экземпляр все еще доступны, и списоктакже присутствуют в экземпляре, который неисправности моего приложения.
Но я хочу, чтобы экземпляр создавался заново и получать данные при каждом запуске.
Этомой экземпляр синглтона.
public class Utilities {
private static Utilities utils = null;
private List<Data> friendsList;
public List<Data> getDataList() {
return dataList;
}
public void setDataList(List<Data> dataList) {
this.dataList = dataList;
}
private List<Data> dataList;
public synchronized static Utilities getInstance(){
if(utils == null){
utils = new Utilities();
}
return utils;
}
}
Это мой фрагмент:
public class DataFragment extends Fragment
{
private static boolean hasObtainedData;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if(!hasObtainedData){
getData(v);
}else{
recyclerView.setAdapter(new Adapter(utils.getDataList()));
}
}
private void getData(View v) {
//get Data using Retrofit:
hasObtainedData = true;
utils.setDataList(dataListObtainedUsingRetrofit)
recyclerView.setAdapter(new Adapter(utils.getDataList()));
}
}
Вот как я называю свой фрагмент из MainActivity:
@Override
public void onTabSelected(TabLayout.Tab tab) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragmentBox, new DataFragment()).commit();
}
Я попытался датьSystem.gc () в onDestroy () MainActivity, но, тем не менее, экземпляр-одиночка жив.
Я ищу много сообщений SOF, основываясь на этом, но не смог решить эту проблему.
Любая помощь будет очень полезна.