0

我有一个播放和停止按钮。这些按钮工作得很好,但是当我播放音乐时,进入其他应用程序的后台,然后返回我的应用程序,如果我按下它,我的播放/停止按钮将再次开始播放。这是一个问题,因为我需要再次按下播放按钮(虽然正在播放音乐),然后按下停止按钮。我找到了使用 onSaveInstanceState() 的方法,但它不起作用,问题又来了,我需要按下播放按钮来停止在后台播放的音乐,我的代码:

int button_status=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.player);
    if (savedInstanceState != null) {
        button_status = savedInstanceState.getInt("EXTRA_IS_ON");
    }}

@Override
public void onSaveInstanceState(Bundle outState) {

    outState.putInt("EXTRA_IS_ON", button_status);
    super.onSaveInstanceState(outState);
}

public void onClick(View v) {
    internetKonekcija = pk.konekcijaPremaInternetu();


    if(button_status == 1)//play the service
    {
    button_status=0;
    startService(new Intent(this, Service.class));
    }
    else//stop the service
    {
    button_status=1;

    stopService(new Intent(this, Service.class));
    }       
4

2 回答 2

0

我建议以不同的方式处理这个问题:与其尝试存储您的服务是否正在运行的标志,因此有可能标志错误,为什么不在需要时查询服务是否正在运行呢?有关如何建议的建议,请参阅此答案:https ://stackoverflow.com/a/5921190/441899

于 2013-07-03T15:01:56.687 回答
0

为什么要在 onCreate 中检查保存的状态?在 onRestoreInstanceState 中检查它。也许它有帮助。

实际上,当您进入后台时,您的应用程序会进入 onPause。我真的不相信当应用程序移动到后台时会触发 onSavedInstanceState 。

于 2013-07-03T14:51:34.707 回答