【问题标题】:Keep activity while the app is not on top of screen当应用不在屏幕顶部时保持活动
【发布时间】:2019-03-31 12:19:32
【问题描述】:

我遇到了多任务处理问题,这可能是一个愚蠢的问题,但在寻找了几个小时的答案后,我不知道该怎么做,似乎每个人都默认了。

所以我的问题是我有两个活动 A(主要)和 B(conataing exoplayer), A--->B 但是当我在 B 上并且我按下锁定按钮或切换应用程序:onPause 被调用(正常)和 onStop 时,我重新打开应用程序,我回到 A,B 的实例似乎被破坏但播放器仍在播放音频。

我想做的是让 B 保持原样或暂停 B 的音频/视频,最重要的是让 b 保持在顶部而不是回到主 (A)。

感谢您的帮助。

【问题讨论】:

    标签: android android-intent android-activity exoplayer


    【解决方案1】:

    尝试通过以下方式开始您的活动 B:

    Intent intent = new Intent(this, ActivityB.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    

    这会将 ActivityB 作为新任务启动并销毁 ActivityA,因此返回它应该是不可能的。如果您当前在 ActivityA 或 B 中添加了一些标志,它们也可能会干扰按下主页按钮后返回所需的活动。

    【讨论】:

    • 非常感谢它有效!如果播放器播放两次或两次实例,只会将音频作为回声问题,知道如何解决这个问题吗?
    • 我对 exoplayer 不熟悉,但是你可能会尝试覆盖 onPause() 方法并在其中暂停当前正在播放的音频,然后在 onResume() 中恢复它
    • 谢谢我已经用 exoplayer 的 resume 方法覆盖了 onpause 但这会暂停,直到应用程序再次打开。它会自动重播,但我不想停止它,所以我会继续寻找一种方法来做到这一点。再次感谢您的帮助
    【解决方案2】:

    在AndroidManifest中你可以使用元素内部的“launchMode”属性来声明Activity B的启动模式

    <activity android:launchMode=”singleTask” />
    

    【讨论】:

      猜你喜欢
      • 2020-10-01
      • 2021-07-17
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多