Java Android应用程序中的停止/播放按钮

Java Android应用程序中的停止/播放按钮,java,android,android-intent,android-mediaplayer,android-button,Java,Android,Android Intent,Android Mediaplayer,Android Button,我正在开发一个应用程序,我有一个播放和停止按钮。这些按钮工作正常,但当我播放音乐时,进入其他应用程序的后台,然后返回到我的应用程序,如果我按下播放/停止按钮,它将再次开始播放。这是一个问题,因为我需要再次按下播放按钮(尽管音乐正在播放),然后按下停止按钮。有什么想法吗?我的代码是: boolean isOn = false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn

我正在开发一个应用程序,我有一个播放和停止按钮。这些按钮工作正常,但当我播放音乐时,进入其他应用程序的后台,然后返回到我的应用程序,如果我按下播放/停止按钮,它将再次开始播放。这是一个问题,因为我需要再次按下播放按钮(尽管音乐正在播放),然后按下停止按钮。有什么想法吗?我的代码是:

boolean isOn = false;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    play=(Button)findViewById(R.id.button1);

    play.setOnClickListener(new OnClickListener() {     
@Override
public void onClick(View v) {
 if(isOn) {
   stopService(new Intent(this, ServisZaStream.class));
      isOn = false;

 }else{
  startService(new Intent(this, ServisZaStream.class));
     isOn = true;
  }


    });

  }  
}

您需要一种方法从应用程序获取后台服务的当前状态,并在恢复应用程序时相应地设置按钮的状态

这是Android应用程序生命周期的一部分。当活动被发送到后台时,未持久保存到捆绑包中的任何内容都可能丢失。因此,当应用程序恢复时,您需要检索您感兴趣的任何状态


Android通过这种方式来节省内存和CPU。

你的应用程序忘记了布尔值,所以你需要借助这样一种机制来完成它,它不会忘记布尔值。。我通常在单身班上做这件事。。您可以为您的应用程序找到任何方法,也可以在singleton的帮助下完成…

当您的应用程序停止或暂停时,您应该将您的isOn标志存储在捆绑包中:

@Override
public void onSaveInstanceState(Bundle outState) {

    outState.putBoolean("EXTRA_IS_ON", isOn);
    super.onSaveInstanceState(outState);
}
然后在onCreate中检索它:

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    if (savedInstanceState != null) {
        isOn = savedInstance.getBoolean("EXTRA_IS_ON");
    }
}

当你把你的应用放在背景中时,你的应用会忘记布尔值的状态谢谢,我明白你在说什么我是年轻的开发人员我还在学习,你有任何例子或链接吗?outState.putString(“EXTRA_IS_ON”,isOn);错误:类型束中的方法putString(String,String)不适用于参数(String,boolean)@user2528081抱歉,正确的方法是putBoolean(“EXSTRA_is_ON”,isOn);