I made an audio player. Everything works, but when I turn off the program and open it again, the progress bar no longer works. How to solve a problem?
public class MainActivity extends Activity { // variable declaration private ListView mainList; private MediaPlayer mp; private SeekBar mSeekBar; TextView tb_title; int pos = 0; private final Handler handler = new Handler(); private final String[] listContent = { "0000", "0001", }; private final int[] resID = { R.raw.a0001, R.raw.a0000, }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); // Initializing variables } private void initViews() { mp = new MediaPlayer(); mainList = (ListView) findViewById(R.id.listView1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listContent); mainList.setAdapter(adapter); mainList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { playSong(position); } }); } private void seekChange(View v){ if(mp.isPlaying()){ SeekBar sb = (SeekBar)v; mp.seekTo(sb.getProgress()); } } public void play (View view) { if (mp.isPlaying()) { mp.pause(); } else { mp.start(); } } public void stop (View view) { mp.stop(); } public void playSong(int songIndex) { // Play song mp.reset();// stops any current playing song mp = MediaPlayer.create(getApplicationContext(), resID[songIndex]); mp.start(); mSeekBar = (SeekBar) findViewById(R.id.mSeekBar); mSeekBar.setMax(mp.getDuration()); mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser && mp.isPlaying()) { mp.seekTo(seekBar.getProgress()); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); startPlayProgressUpdater(); } public void startPlayProgressUpdater() { mSeekBar.setProgress(mp.getCurrentPosition()); if (mp.isPlaying()) { Runnable notification = new Runnable() { public void run() { startPlayProgressUpdater(); } }; handler.postDelayed(notification,1000); }else{ mp.pause(); mSeekBar.setProgress(0); } } @Override public void onDestroy() { super.onDestroy(); mp.release(); } }