1

我在画中画模式下遇到了这个问题,我想在从 PIP 本身以外的其他地方再次打开活动时关闭 PIP(画中画)。不是从关闭按钮。

我想要与 youtube 相同的场景,即当用户单击 PIP(画中画)时,它会打开相同的活动,但是当用户从列表中选择另一个视频时,它会结束前一个 PIP(画中画)并打开一个新活动。就我而言,当我打开一个新视频时,它会恢复我之前播放的视频。

4

2 回答 2

1

有两种可能的方法来做到这一点:

  1. 如果您有活动访问权限,则将活动移到后面。

    activity.moveTaskToBack(false);
    

来自官方文档

将包含此活动的任务移到活动堆栈的后面。活动在任务中的顺序不变。

  1. 您可以将活动恢复到前面

    Intent intent = new Intent(PipScreenActivity.this, PipScreenActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    activity.startActivity(intent);
    
于 2019-10-15T06:33:57.837 回答
0

活动A

 Intent intent = new Intent("finish_activity");
            sendBroadcast(intent);

活动 B

 BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context arg0, Intent intent) {
            String action = intent.getAction();
            if (action.equals("finish_activity")) {
                finish();
            }
        }
    };
    registerReceiver(broadcastReceiver, new IntentFilter("finish_activity"));
于 2021-10-14T10:11:35.787 回答