以编程方式将 Android activity 置于其 "Stopped" 状态,而不破坏它?

Programmatically put an Android activity in its "Stopped" state, without destroying it?

我正在 Android 中创建一个音乐应用程序,其中有一个播放音乐的后台服务,以及一个包含各种片段的主页 activity,它是应用程序的 UI。

当我在 phone 上按下 home 按钮 时,这个应用程序当然会进入后台,生命周期方法会被调用到 onStop() ,其中 UI 与服务断开连接以允许后台播放,用户可以继续使用他们的设备并做其他事情。当我回到我的 UI Activity 时,onStart 被调用并且 UI 和服务重新连接在一起,让我重新控制音乐。 onStart 在前台让我 相同的 activity它不会创建相同 activity 的另一个实例。

我还尝试在我的设备上按下 后退按钮 时实现一个功能,因此 UI activity 可以有与主页按钮相同的行为,即只需将 UI 置于后台 (onStop)。相反,后退按钮的默认行为是 finish(),终止调用它的当前 activity(因此调用 onDestroy)。

我能为此做什么?在网上真的找不到任何东西。似乎每个音乐应用程序都有的如此简单的功能(按下后退时不会杀死应用程序,而是将其发送到后台)

您可以覆盖 onBackPressed 并将 Activity 任务移回。基于documentationActivity'任务中的顺序也将保持不变:

@Override
public void onBackPressed() {
    this.moveTaskToBack(true);
}