我正在開發一個音樂應用程序,其中正在使用一個Seekbar。我有一個方法可以處理seekbar的性能,而且效果很好。但如果搜索條是在行動有內存泄漏和日誌貓節目如Android TextView內存泄漏
GC_CONCURRENT freed 1692K, 34% free 10759K, paused 3ms+8ms
這個不斷到來時,搜索條進展
我發現,這個問題是由於的TextView的更新用,動態地顯示當前歌曲的持續時間。
我該如何解決這個問題。請幫我這個問題
我的功能是
public void seekbarProgress(){
handler.postDelayed(new Runnable() {
@Override
public void run() {
//current position of the play back
currPos = harmonyService.player.getCurrentPosition();
if(isPaused){
//if paused then stay in the current position
seekBar.setProgress(currPos);
//exiting from method... player paused, no need to update the seekbar
return;
}
//checking if player is in playing mode
if(harmonyService.player.isPlaying()){
//settting the seekbar to current positin
seekBar.setProgress(currPos);
//updating the cuurent playback time
currTime.setText(getActualDuration(""+currPos));
handler.removeCallbacks(this);
//callback the method again, wich will execute aftr 500mS
handler.postDelayed(this, 500);
}
//if not playing...
else{
//reset the seekbar
seekBar.setProgress(0);
//reset current position value
currPos = 0;
//setting the current time as 0
currTime.setText(getActualDuration(""+currPos));
Log.e("seekbarProgress()", "EXITING");
//exiting from the method
return;
}
}
}, 500);
}
爲什麼要用每個搜索欄進度更新曲目的長度?您可以在MediaPlayer準備好之後更新一次。 – Rotem
我想在一個文本視圖中更新當前搜索時間,還有一個文本視圖用於歌曲的整個持續時間,此文本視圖用於正在播放的歌曲的播放時間。 – AndEngine
您多久更換一次seekbar進度?如果在文本中不顯示毫秒,則可以根據搜索欄創建一個每秒更新TextView的線程。 – Rotem