Добрый день. Что делаем: на старте активити добавляем фрагмент
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
switch (c) {
case (0):
fragmentTransaction.add(R.id.frame, new Fragment1());
break;
case (1):
fragmentTransaction.add(R.id.frame, new Fragment2());
break;
case (2):
fragmentTransaction.add(R.id.frame, new Fragment3());
break;
}
fragmentTransaction.commit();
Далее, в зависимости от действий произведенных в фрагменте, заменяем на новый фрагмент и т.д.
public void getNextString() {
int i = new Random().nextInt(3);
while (resultsMassive[getNumString()][i+1] != null) {
i = new Random().nextInt(3);
}
c = i;
}
public void replaceFragment() {
if (variantsModelData.getTrainingList().size() > 0) {
setResults();
getNextString();
variantsModelData.getTrainingList().remove(0);
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
switch (c) {
case (0):
fragmentTransaction.replace(R.id.frame, new Fragment1());
break;
case (1):
fragmentTransaction.replace(R.id.frame, new Fragment2());
break;
case (2):
fragmentTransaction.replace(R.id.frame, new Fragment3());
break;
}
fragmentTransaction.commit();
} else {
resultsShow();
}
}
private int getNumString() {
for (int i = 0; i < resultsMassive.length; i++) {
if (resultsMassive[i][0] == variantsModelData.getTrainingList().get(0).get(0)) {
return i;
}
}
return 0;
}
public void setResults() {
resultsMassive[getNumString()][c + 1] = variantsModelData.isWin;
}
По началу все идет окей, потом в какой-то момент, при нажатии кнопки во фрагменте(нажатие обрабатывается и и отдает данные в variantsModelData) и на этом приложение зависает с незаконченной анимацией нажатия кнопки и в дебагере следующее
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
I/chatty: uid=10525(com.xxx.yyy) HeapTaskDaemon identical 3 lines
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
D/: [ZeroHung]zrhung_send_event: wp=257, ret=-1
E/ZrHungImpl: sendAppFreezeEvent failed!
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
I/chatty: uid=10525(com.xxx.yyy) HeapTaskDaemon identical 3 lines
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
I/chatty: uid=10525(com.xxx.yyy) HeapTaskDaemon identical 2 lines
E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
D/: [ZeroHung]zrhung_send_event: wp=258, ret=-1
E/ZrHungImpl: sendAppFreezeEvent failed!
и далее
Background concurrent copying GC freed 439209(8MB) AllocSpace objects, 0(0B) LOS objects, X% free, 7MB/14MB, paused 1.579ms total 119.148ms
где X с каждым разом все меньше
Я работаю с данными типа List>, фрагменты получают к ним доступ через ViewModel, во фрагментах просто присваиваю ссылку на объект созданный в активити. Фриз не зависит от фрагмента, может появиться в любом. В режиме, когда я добавляю один фрагмент, и работаю с ним все окей, а вот если их менять постоянно, то получаю вот такое..
Зависание происходит именно где-то во фрагменте, так как я ставила брикпоинт на вхождение в replaceFragment() в активити, и зависание и происходит до того, как фрагмент вызовет этот метод.
К сожалению, выкладывать коды фрагментов, не имеет смысла, так как слишком громоздко и никто все равно не разберет, что я там понаписала,.
Вопрос: Подскажите просто пожалуйста в чем суть ошибок в дебагере? На сколько понимаю, это не утечка памяти, ибо сборщик мусора вызывается и ошибки OOM нет.
UPD: Разобралась, недосмотрела и while в getNextString() зациклился бесконечно.