【问题标题】:Programmatically put an Android activity in its "Stopped" state, without destroying it?以编程方式将 Android 活动置于“已停止”状态,而不破坏它?
【发布时间】:2018-09-29 06:56:39
【问题描述】:

我正在 Android 中创建一个音乐应用程序,其中有一个播放音乐的后台服务,以及一个具有各种片段并且是应用程序 UI 的 Home 活动。

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

我正在尝试实现一个功能,当我按下设备上的后退按钮时,UI 活动可以具有与主页按钮相同的行为,即简单地放置 UI在后台(onStop)。相反,后退按钮的默认行为是完成(),终止调用它的当前活动(因此调用 onDestroy)。

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

【问题讨论】:

    标签: android android-activity activity-lifecycle


    【解决方案1】:

    您可以覆盖onBackPressed 并将活动任务移到后面。基于documentationActivity'r在Task中的顺序也将保持不变:

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

    【讨论】:

    • 这会保持该活动实例的运行吗? (以及其中的所有片段)。我现在就试一试
    • 它应该表现得好像 onStop() 被调用
    • 这正是我想要的。谢谢
    • 太棒了!享受编码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多