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