在android中关闭并退出我的应用程序

时间:2013-04-30 23:37:27

标签: android

我有一个应用程序,在主页上我有用于浏览应用程序的按钮。

在该页面上,我有一个“退出”按钮,单击此按钮可将用户带到应用程序图标所在的手机主屏幕。

但它会把我带到主屏幕,但无线电仍然有效。

我该怎么做?

我的代码ID: -

//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);
}

编辑: -

我会试试这个

@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();
                }
              }
            }

exitradio();代码为: -

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

仍然关闭应用程序,但无线电仍在工作


我的MainActivity类是: -

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;
    }


}

和StartPoint类如: -

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 < 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();
}

}

1 个答案:

答案 0 :(得分:2)

尝试在退出按钮上设置侦听器(

  我的例子中的

是:btn_exit

) 你的应用程序将退出:)

    public class testprj extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button btn_exit = (Button) findViewById(R.id.btn1);
    btn_exit .setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            finish();
            System.exit(0);
        }
    });
    }
 }

**

  

还要确保第一个活动已完成(onStop()==&gt; make   完成())

**