Hello! I have a problem in which I do not know where to dig. There is a class with which I work through RxJava. It is necessary to recursively run it successively n-th number of times, but on launch 20-25, the application crashes with an Out of memory error.
public void listSong (String keywords){ Log.e("RxJavaX", "keywords: " + keywords); Observer<List<ObjectTrack>> observer = new Observer<List<ObjectTrack>>() { @Override public void onSubscribe(Disposable d) { Log.e("RxJavaX", "onSubscribe: "); } @Override public void onNext(List value) { insertToBase.insertSongsToBase(value); Log.e("RxJavaX", "onNext: " + value); } @Override public void onError(Throwable e) { Log.e("RxJavaX", "onError: Names"); } @Override public void onComplete() { // for (int i = 1; i<=ejectSongsFromBase.ejectSongsNamesFromBase(PopSongs.class).size();i++){ if(numNamesSong <= sizeOfList){ listSong(ejectSongsFromBase.ejectSongsNamesFromBase(PopSongs.class).get(numNamesSong).getTrackArtist() + " " + ejectSongsFromBase.ejectSongsNamesFromBase(PopSongs.class).get(numNamesSong).getTrackName()); numNamesSong++; } // threadParseFree = true; Log.e("RxJavaX", "onComplete: All Done! " + ejectSongsFromBase.ejectSongsFromBase(ObjectTrack.class)); } }; parserPage.getTrackList(Constants, keywords).subscribe(observer); }