Задача, вызывающая много GC - PullRequest
       20

Задача, вызывающая много GC

0 голосов
/ 14 августа 2011

Я создал поток, чтобы я мог получить текущую позицию моего MediaPlayer, не нарушая пользовательский интерфейс, но я видел, что получал много мусора во время работы таймера, это нормально?

Кроме того, чтобы избежать риска рассылки спама, кто-нибудь еще знает лучший способ отображения позиции MediaPlayer, который является более эффективным?

private void processThread() {

        final MediaPlayer MP;
        MP = MediaPlayer.create(this, R.raw.sleepaway);
        MP.start();

        new Thread(){

            public void run(){              


                handler.post(new Runnable(){

                    @Override
                    public void run() {


                        myText.setText(getTimeString(MP.getCurrentPosition()));    
                        handler.postDelayed(this,10);

                    }  

                });


            }

        }.start();

    }

Сообщения, которые я получаю примерно три раза в секунду:

08-14 05:44:27.385: DEBUG/dalvikvm(32100): GC freed 10820 objects / 524656 bytes in 75ms

1 Ответ

3 голосов
/ 14 августа 2011

Тема, которую вы создаете, совершенно бесполезна, просто делайте пост (Runnable).Кроме того, вы создаете бесконечный «цикл» с помощью функции postDelayed ().

...