Multithreading 从用户设置seekbar
此代码是关于歌曲播放应用程序的,但要在歌曲列表中手动选择歌曲会导致应用程序崩溃。随机发生Multithreading 从用户设置seekbar,multithreading,android-studio,runnable,Multithreading,Android Studio,Runnable,此代码是关于歌曲播放应用程序的,但要在歌曲列表中手动选择歌曲会导致应用程序崩溃。随机发生 new Thread(new Runnable() { @Override public void run() { while (mediaPlayer != null) { try { Message msg = new Message();
new Thread(new Runnable() {
@Override
public void run() {
while (mediaPlayer != null) {
try {
Message msg = new Message();
msg.what = mediaPlayer.getCurrentPosition();
handler.sendMessage(msg);
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start;
@SuppressLint("HandlerLeak")
Handler handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
int currentPosition = msg.what;
// update position
seekBar.setProgress(currentPosition);
//update Label
String elapsedTime = creatTimeLabel(currentPosition);
tvCurrentTime.setText(elapsedTime);
String remainingTime = creatTimeLabel(totaltime);
tvTotalTime.setText(remainingTime);
}
};
事故报告
E/AndroidRuntime: FATAL EXCEPTION: Thread-3
Process: com.example.myapp, PID: 10836
java.lang.IllegalStateException
at android.media.MediaPlayer.getCurrentPosition(Native Method)
at com.example.myapp.SongRecycler.Activity.ActivitySongAudioDetail$1.run(ActivitySongAudioDetail.java:52)
at java.lang.Thread.run(Thread.java:919)
请帮我解决这个问题。谢谢你