close and exit from my App in android
<p>I have an application where on the home page I have buttons for navigation through the application.</p>

<p>On that page I have a button "EXIT" which when clicked should take the user to the home screen on the phone where the application icon is.</p>

<p>But its go me to home screen but radio still work.</p>

<p>How can I do that?</p>

<p>my code id :- </p>

<pre><code>//method for exit.
public void exitradio() {
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}
</code></pre>

<p>Edit :- </p>

<p>i will try this </p>

<pre><code>@Override
public void onClick(View v){
            if(v == PlayBtn){
                 startradio();
              }
             else if(v == PauseBtn){
                 pauseradio();
              }
             else if(v == ExitBtn){
                 exitradio();
              }
             else if(v == RefreshBtn){
                 try {
                    refreshradio();
                } catch (IllegalArgumentException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (SecurityException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
              }
            }
</code></pre>

<p>and the <code>exitradio();</code> code is :-</p>

<pre><code>//method for exit.
public void exitradio() {
    //finish();
    System.exit(0);
}
</code></pre>

<p>and still close app but radio still work</p>

<hr>

<p>my MainActivity class is :-</p>

<pre><code>public class MainActivity extends Activity implements OnClickListener{
        // Define ..............................................................
        private static ProgressDialog progressDialog;
        public MediaPlayer mp;
        boolean isPrepared = false;
        Button PlayBtn , ExitBtn , PauseBtn , RefreshBtn;
        String MEDIA_PATH;

@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        progressDialog = ProgressDialog.show(MainActivity.this, "", "Buffering Radio...",true);
        progressDialog.setCancelable(false);
        // Declare ..............................................................
        mp = new MediaPlayer();
        PlayBtn = (Button)findViewById(R.id.btnPlay);
        PlayBtn .setOnClickListener(this);
        PauseBtn = (Button)findViewById(R.id.btnPause);
        PauseBtn .setOnClickListener(this);
        RefreshBtn = (Button)findViewById(R.id.btnRefresh);
        RefreshBtn .setOnClickListener(this);
        ExitBtn = (Button)findViewById(R.id.btnExit);
        ExitBtn .setOnClickListener(this);
        MEDIA_PATH = "http://radio.arabhosters.com:8015/"; 

        // Volume Control ..............................................................
        final AudioManager leftAm = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
        int maxVolume = leftAm.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        int curVolume = leftAm.getStreamVolume(AudioManager.STREAM_MUSIC);
        SeekBar volControl = (SeekBar)findViewById(R.id.volumebar);
        volControl.setMax(maxVolume);
        volControl.setProgress(curVolume);
        volControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar arg0) {
             // TODO Auto-generated method stub
            }

            @Override
            public void onStartTrackingTouch(SeekBar arg0) {
             // TODO Auto-generated method stub
            }

            @Override
            public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
             // TODO Auto-generated method stub
             leftAm.setStreamVolume(AudioManager.STREAM_MUSIC, arg1, 0);
            }
           });  
    }


@Override
public void onClick(View v){
            if(v == PlayBtn){
                 startradio();
              }
             else if(v == PauseBtn){
                 pauseradio();
              }
             else if(v == ExitBtn){
                 exitradio();
              }
             else if(v == RefreshBtn){
                 try {
                    refreshradio();
                } catch (IllegalArgumentException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (SecurityException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
              }
            }

public void onCompletion(MediaPlayer mediaPlayer) {
         synchronized(this){
            isPrepared = false;
            }
            }

protected void onResume (){
        super.onResume();

        try {
            mp.setDataSource(MEDIA_PATH);
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
        try {
            mp.prepare();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } //also consider mp.prepareAsync().
        // defult start stream when start App.  
        mp.start();
        mp.setVolume(100, 100);
        progressDialog.dismiss();        
        }

        // method for play stream after stop it.
public void startradio() {
            try{
                if(mp.isPlaying()){
                    return;
                }  
                   mp.start();
                   progressDialog.dismiss();
            } catch(IllegalStateException ex){
                ex.printStackTrace();
            } 
        }

// method for Refresh stream.
public void refreshradio() throws IllegalArgumentException, SecurityException, IOException {
        try{
            if(mp.isPlaying()){
                return;
            }
               mp.reset();
               mp.setDataSource(MEDIA_PATH);
               mp.prepare(); 
               mp.start();
               progressDialog.dismiss(); 
        } catch(IllegalStateException ex){
            ex.printStackTrace();
        } 
    }

// method for pause stream. 
public void pauseradio() {
        mp.pause();
    }

// method for check is radio paly or not stream
public boolean isPlaying() {
        return mp.isPlaying();
    }

// method for Looping audio if your record it - Soon :)
public boolean isLooping() {
        return mp.isLooping();
    }

// method for Looping audio if your record it - Soon :)
public void setLooping(boolean isLooping) {
        mp.setLooping(isLooping);
    }

// method for volume
public void setVolume(float volumeLeft, float volumeRight) {
        mp.setVolume(volumeLeft, volumeRight);
    }

// method for stop stream.
public void stopradio() {
        if(mp.isPlaying()){
            mp.stop();
        }
        mp.release();
    }

//method for exit.
public void exitradio() {
    //finish();
    System.exit(0);
}

//method for back to main menu "Home".
public void backtomenu() {
  finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }


}
</code></pre>

<p>and StartPoint class like :-</p>

<pre><code>public class StartPoint extends Activity{

ProgressBar progressBar;
private int progressBarStatus = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);

    progressBar = (ProgressBar)findViewById(R.id.progressBar1);


    Thread timer = new Thread(){
        public void run(){
            try{
                sleep(5000);
                while(progressBarStatus &lt; 5000){
                    StartPoint.this.runOnUiThread(new Runnable(){
                        public void run()
                        {
                            progressBar.setProgress(progressBarStatus);
                            progressBarStatus += 1000;
                        }
                    });

                }
            }catch(InterruptedException e){
                e.printStackTrace();
            }finally{
                Intent openMainList = new Intent(StartPoint.this, com.example.kam.MainActivity.class);
                startActivity(openMainList);
            }
        }
    };
    timer.start();
}

}
</code></pre>
