I am making media player and i have progress bar in it. When play button is clicked then the thread starts which will set progress of progress bar. when pause button is clicked the the thread will stop.
but when i press stop button i want the progress bar to rollback and start again when play is clicked hence i want the thread to destroy but i am unable to do it . Calling suspend() method when stop button is pressed gives :-
03-24 13:17:27.855: ERROR/global(26971): java.lang.UnsupportedOperationException
i know this is a deprecated method but please guid me how to destroy the thread when stop button is pressed. Following is the part of my code :-
public void onClick(View src) {
switch (src.getId()) {
case R.id.buttonStart:
if(DataManager.getInstance().getSongPause()=="y"){
myService.player.start();
DataManager.getInstance().setSongPause("n");
buttonStart.setVisibility(View.GONE);
buttonPause.setVisibility(View.VISIBLE);
// DataManager.getInstance().setWantsToPlaySong(true);
//DataManager.getInstance().setOnPausedSong("n");
//DataManager.getInstance().setOnPausedSong("y");
if(mt.paused==true){
mt.unPauseProgressBar();
}
}else{
stopService(new Intent(this, MyService.class));
DataManager.getInstance().setSong_uri(uri);
Intent intent = new Intent(this,MyService.class);
Bundle b = new Bundle();
b.putString("song_uri",uri );
intent.putExtras(b);
startService(intent);
buttonStart.setVisibility(View.GONE);
buttonPause.setVisibility(View.VISIBLE);
DataManager.getInstance().setOnPausedSong("y");
DataManager.getInstance().setPausedSongName(songName);
//Toast.makeText(this, "My Service Started "+DataManager.getInstance().getSongDuration(), Toast.LENGTH_LONG).show();
//new Thread(myThread).start();
}
//Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
break;
case R.id.buttonStop:
Log.d(TAG, "onClick: stopping srvice");
stopService(new Intent(this, MyService.class));
buttonStart.setVisibility(View.VISIBLE);
buttonPause.setVisibility(View.GONE);
/*mt=null;
seekbar.setProgress(0);*/
mt.stopProgressBar();
//mt.destroy();
//mt.notify();
break;
case R.id.buttonforward:
stopService(new Intent(this, MyService.class));
current_song++;
FetchAllMusic fetchAllMusic = new FetchAllMusic();
fetchAllMusic.execute();
//new Thread(myThread).start();
break;
case R.id.buttonbackward:
Log.d(TAG, "onClick: stopping service");
stopService(new Intent(this, MyService.class));
if(current_song>0){
current_song--;
}
FetchAllMusic fetchAllMusic2 = new FetchAllMusic();
fetchAllMusic2.execute();
break;
case R.id.buttonPause:
buttonStart.setVisibility(View.VISIBLE);
buttonPause.setVisibility(View.GONE);
/* MyService myservice=new MyService();
myservice.onPause();*/
myService.player.pause();
// myThread.
DataManager.getInstance().setSongPause("y");
DataManager.getInstance().setWantsToPlaySong(false);
DataManager.getInstance().setOnPausedSong("n");
DataManager.getInstance().setPausedSongName(songName);
mt.pauseProgressBar();
/*try {
//Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
and Following is my thread class :-
class myThread extends Thread implements Runnable{
// long duration=DataManager.getInstance().getSong_duration();
//long value=duration/100;
private volatile boolean paused = false;
private volatile boolean finished = false;
@Override
public void run()
{
while(!finished){
while (myProgress
Stop progress bar gives me the above mentioned error