Мой библиотечный код уведомит массив байтов к пользовательскому интерфейсу, который, в свою очередь, поставлен в очередь. Другой поток будет деактивировать байтовый массив и использовать экземпляр пакета обработчиков байтового массива и отправить сообщение для обновления интерфейса.Как избежать утечки памяти в обработчике?
фрагмента кода, который использует обработчик для обновления пользовательского интерфейса
public void run(){
while(running){
try {
byte[] msg=(byte[]) queue.getMsg();
Message message=new Message();
Bundle bundle=new Bundle();
bundle.putByteArray("img",msg);
message.obj=bundle;
handler.sendMessage(message);
message=null;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
, но дело в том, я получаю OutOfMemory исключения после 5 до 10 минут. Использование кучи памяти Eclipse MAT показывает, что 90% кучи занято более экземпляром android.os.Message.