0

我有一个应用程序,用户可以在其中启动和播放音频并查看歌词滚动。

如果点击安卓手机上的返回按钮,应用程序状态不会被保存。我想在该状态下停止应用程序,并在用户返回时从那里继续。

我想暂停音频并停止滚动。

我怎样才能做到这一点?

如果我接到来电,该应用程序可以正常工作。音频停止。取决于音频状态的滚动也是如此。

应用程序是通过主干线zepto 使用phonegap 构建的。

4

1 回答 1

0

如果我是你,我不会搞砸的。用户期望使用后退按钮将关闭应用程序。改变这也意味着人们不能定期关闭应用程序(除非他们使用应用程序管理器这样做)人们可以按下“主页”按钮来获得确切的功能。您必须编辑在应用程序处于“暂停”状态或从“暂停”状态返回时执行的代码。

检查此问题以获取有关此的更多信息。我将把该答案中的一些信息放在这里:@Override public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); // 将 UI 状态更改保存到 savedInstanceState。// 如果进程被杀死并重新启动,这个包将被传递给 onCreate。savedInstanceState.putBoolean("MyBoolean", true); }

您需要覆盖 onSaveInstanceState(Bundle savedInstanceState) 并将要更改的应用程序状态值写入 Bundle 参数,如下所示:

这会在您离开应用程序(主页按钮)时执行。

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  // Save UI state changes to the savedInstanceState.
  // This bundle will be passed to onCreate if the process is
  // killed and restarted.
  savedInstanceState.putBoolean("MyBoolean", true);
  savedInstanceState.putDouble("myDouble", 1.9);
  savedInstanceState.putInt("MyInt", 1);
  savedInstanceState.putString("MyString", "Welcome back to Android");
  // etc.
}

当您返回应用程序时,这将被执行。

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  // Restore UI state from the savedInstanceState.
  // This bundle has also been passed to onCreate.
  boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");
}
于 2015-02-25T18:58:26.663 回答