最小化android中先前活动中的活动

时间:2018-08-18 21:45:56

标签: android activity-lifecycle back-stack

我正在开发一个支持即时消息的视频通话组件。我想添加最小化背面按下时的视频通话屏幕的选项,并返回到消息传递activity以同时执行这两项操作(类似于功能的WhatsApp)。问题是,我找不到解决方案,因为回到上一个activity将完成当前的工作。因此,我该如何override onBackpressed(),以便我可以最小化而不是结束通话屏幕activity(比如将其添加到通知中)并返回到消息传递activity

1 个答案:

答案 0 :(得分:1)

您要执行的操作称为Picture-in-Picture

  

Android 8.0(API级别26)允许启动活动   画中画(PIP)模式。 PIP是一种特殊类型的多窗口   模式主要用于视频播放。用户可以通过它观看视频   导航时固定在屏幕角落的小窗口   在应用程序之间或在主屏幕上浏览内容之间。

一个非常简单的示例:

1)在您的AndroidManifest文件中指定哪些活动支持PIP:

<activity
      android:name=".VideoActivity"
      android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
      android:resizeableActivity="true"
      android:supportsPictureInPicture="true"/>

2)触发PIP模式以响应某些用户操作,例如在onBackPressed()中:

override fun onBackPressed() {
   // Ideally you would want to enter PIP while a video is playing, so:
   val isVideoPlaying = // have a condition here that holds true while the video is playing

   if (isVideoPlaying) {
        enterPictureInPictureMode()
   } else {
        super.onBackPressed()
   }
}