chenenyu/Router

当某个Activity在Picture in Picture模式下时,通过router跳转的Activity会抢占Picture in Picture

xiaochilun opened this issue · 10 comments

当某个Activity在Picture in Picture模式下时,通过router跳转的Activity会抢占Picture in Picture。
但如果不使用router使用以下代码就正常;
val i = Intent()
i.setClass(it, RActivity::class.java)
startActivity(i)

我还没用过pip模式... 能否录个屏看看

我还没用过pip模式... 能否录个屏看看

视频怎么样才可以发给您看

直接拖到这个评论的对话框里 就能上传

跳转到观看历史页面使用的是Intent方式,跳转到离线缓存使用的router,gif图最后一帧可以看到离线缓存页面将画中画抢占了。

val i = Intent()
i.setClass(it, RActivity::class.java)
startActivity(i)

这段代码是在哪调用的? 使用Router时传入的context是首页的context吗?

val i = Intent()
i.setClass(it, RActivity::class.java)
startActivity(i)

这段代码是在哪调用的? 使用Router时传入的context是首页的context吗?

代码是在跳转历史记录页面调用的;
使用router传入的是Application实例;
刚刚将传入的context改成首页的context还是会出现抢占的情况

把调用的context改成同一个有问题吗?

调用的context改成同一个(getActivity())还是会有问题

发现了一些规律,
待跳转的Activity启动模式不是singleTask并且Router使用的context是Activity对象就不会出现抢占的现象了。

Bundle options = mRouteRequest.getActivityOptionsBundle();
if (context instanceof Activity) {
((Activity) context).startActivityForResult(intent, mRouteRequest.getRequestCode(), options);
if (mRouteRequest.getEnterAnim() >= 0 && mRouteRequest.getExitAnim() >= 0) {
((Activity) context).overridePendingTransition(
mRouteRequest.getEnterAnim(), mRouteRequest.getExitAnim());
}
} else {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent, options);
}

Router跳转代码就这