【发布时间】:2016-12-27 02:37:14
【问题描述】:
我使用RecyclerView 进行活动;
在RecyclerView 中,我制作了一个带有搜索栏和播放按钮的歌曲列表。
在搜索栏中,它使用线程随着音乐当前位置移动
但改变活动,音乐停止但错误
我希望当我改变活动时,音乐停止而不是错误
请帮帮我
//seekbar change listener
seekbar.setMax(music.getDuration());
seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
if(fromUser)
music.seekTo(progress);
}
});
//music playing
public void button(View v){
if(music.isPlaying()){
music.stop();
try {
music.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
music.seekTo(0);
button.setText(R.string.start);
seekbar.setProgress(0);
}else{
music.start();
button.setText(R.string.stop);
Thread();
}
}
//Thread
public void Thread(){
Runnable task = new Runnable(){
public void run(){
while(music.isPlaying()){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
seekbar.setProgress(music.getCurrentPosition());
}
}
};
Thread thread = new Thread(task);
thread.start();
}
【问题讨论】:
-
您是否尝试在 onStop() 或 onPause() 方法中杀死您的方法?
-
我试过了,但万一它在 recyclerview.viewholder 所以我不能使用 onStop() 或 onPause 方法
标签: android multithreading android-recyclerview activity-finish