0
我已經創建了一個線程,以便我可以在不干擾UI的情況下獲取MediaPlayer的當前位置,但是我發現在定時器運行時看到很多垃圾回收,這是正常嗎?導致很多GC的任務
此外爲了避免垃圾郵件的風險,是否有其他人知道更好的方式來顯示更高效的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
你認爲它會減慢我的UI嗎? – Jonno
它不能比你現在的代碼更糟糕。就像我說的,你的線程是無用的,你將用這個代碼創建很多線程。這將是昂貴的。 –
@RomainGuy - handler.postDelayed()創建新的線程或調度一個可在當前線程中執行的runnable? – StackOverflowed