addValueEventListener
является асинхронным и возвращается немедленно. Обратный вызов, который вы передали ему, будет вызываться через некоторое неизвестное время, когда данные будут доступны. Это означает, что ваш метод retrieve
также немедленно возвращается с начальным значением trips
, которое является пустым. Чтобы сформулировать это по-другому - при первом вызове retrieve
он возвращает пустой список объектов Trip.
Если вы хотите, чтобы ваш ListView отображал данные, вам следует вместо этого установить его адаптер после того, как вы собрали все эти поездки. Это означает, что вы должны сделать это внутри обратного вызова addValueEventListener
.
Google имеет библиотеку для генерации coredumps из рабочего процесса, названного google-coredumper. Это должно проигнорировать ulimit и другие механизмы.
Документация для вызова, который генерирует базовый файл, здесь. Согласно документации, кажется, что выполнимо генерировать базовый файл в обработчике сигналов, хотя это, как гарантируют, всегда не будет работать.
Я видел сообщение pmbrett и думал "эй, это прохладно", но не могло найти что утилита где угодно в моей системе (хинду).
Таким образом, я сделал немного подталкивания и обнаружил, что GDB имеет эту опцию в нем.
gdb --pid=4049 --batch -ex gcore
Казалось, хорошо работал для меня.
Не однако очень полезный, потому что это захватывает очень самую низкую функцию, которая использовалась в то время, но это все еще делает хорошее задание вне того (Без ограничений памяти, Выведенных 350M снимок процесса Firefox с ним)
Некоторые возможные solutions^W способы справиться с этой ситуацией:
Можно также изменить ulimit () из программы с setrlimit (2). Как команда оболочки ulimit, это может понизить пределы или повысить их настолько трудно, как жесткий предел позволяет. При запуске setrlimit () для разрешения базового дампа, и Вы в порядке.
система ("уничтожают-6"),
Я дал бы ему попытку, если Вы все еще ищете что-то
Попытайтесь использовать команду Linux gcore
использование: gcore [-o имя файла] pid
Необходимо будет использовать систему (или должностное лицо) и getpid () для создания правильной командной строки для вызова его из процесса