我已经创建了一个线程,这样我就可以在不打扰用户界面的情况下获取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
答案 0 :(得分:3)
您正在创建的主题完全无用,只需执行帖子(Runnable)。此外,您正在使用postDelayed()创建一个无限的“循环”。