Исключение мертвых объектов Android

Я успешно завершил реализацию проекта Android и начал тестировать приложение для утечек памяти. Иногда я получаю исключение deadobject после продолжительной поездки в приложении, и все выделения памяти освобождаются. Как я могу обнаружить эту проблему? Я изучил DDMS-инструменты для обнаружения утечек памяти. Из-за того, что я не знаю о DeadObjectExeption, я не знаю с чего начать.

Заранее спасибо..

Это не проблема с утечкой памяти. Определение утечки памяти (из Википедии):

Утечка памяти в компьютерной науке (или утечке в этом контексте) возникает, когда компьютерная программа приобретает память, но не возвращает ее в операционную систему.

Здесь у вас есть противоположный случай – память освобождается до того, как она должна (по крайней мере, с точки зрения вашей программы).

С сайта developer.android.com:

DeadObjectException расширяет RemoteException

Объект, который вы вызываете, умер, потому что его процесс хостинга больше не существует.

Например:

У вас есть классы MyActivity и MyService. Вы используете Handler / Messenger для связи между ними. Вы создаете Handler и Messenger в MyActivity, а затем отправляете созданный экземпляр Messenger на MyService через Intent. Затем вы делаете что-то, время проходит, и ваш MyActivity уничтожается вместе с Handler и Messenger. Теперь, если вы не справитесь с этим, MyService не будет знать, что Messenger, который у него есть, уже недействителен, поэтому он пытается отправить что-то через него и получить DeadObjectexception:

/ * Отправить сообщение этому обработчику Messenger.

Параметры:

Сообщение Сообщение для отправки. Обычно извлекается через Message.obtain ().

Броски:

RemoteException Throws DeadObjectException, если целевой обработчик больше не существует. * /

Public void send (Message message) throws RemoteException {…}

Если вы вызываете какую-либо функцию из Native Library (.so-файла), просто проверьте имя пакета, используемое при создании функции JNI, так же, как вы объявляете собственный метод в классе Java.