我有一个应用程序,在主页上我有用于浏览应用程序的按钮。
在该页面上,我有一个“退出”按钮,单击此按钮可将用户带到应用程序图标所在的手机主屏幕。
但它会把我带到主屏幕,但无线电仍然有效。
我该怎么做?
我的代码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();
}
}
答案 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 完成())
**