关闭Chrome自定义标签的回调

时间:2016-12-07 05:26:29

标签: android android-activity chrome-custom-tabs

我有一个活动'A',在该活动中,我打开了一个Chrome自定义标签。现在,当用户关闭chrome自定义选项卡时,我想打开另一个活动“B”。有没有办法知道Chrome自定义标签何时关闭。或任何其他方式来解决上述问题。

3 个答案:

答案 0 :(得分:10)

您可以跟踪在活动A上的布尔变量上打开自定义选项卡。

private boolean mCustomTabsOpened = false;

public void launchCustomTabs(String url) {
   mCustomTabsOpened = true;
   new CustomTabs.Builder().build().launchUrl(this, Uri.parse(url));
}

然后,使用活动A onResume()启动活动B

public void onResume() {
    if (mCustomTabsOpened) {
        mCustomTabsOpened = false;
        startActivity(this, ActivityB.class);
    }
}

您可能希望使用KeepAliveService来阻止ActivityA被销毁,如图所示here

答案 1 :(得分:9)

在活动A中,您可以启动Chrome自定义标签,如下所示:

private final int CHROME_CUSTOM_TAB_REQUEST_CODE = 100;

public void launchCustomTabs(String url) {
    CustomTabsIntent customTabsIntent = builder.build();
    customTabsIntent.intent.setData(Uri.parse(url));
    startActivityForResult(customTabsIntent.intent, CHROME_CUSTOM_TAB_REQUEST_CODE);
}

在onActivityResult中检查该请求代码:

if (requestCode == CHROME_CUSTOM_TAB_REQUEST_CODE) {
    startActivity(this, ActivityB.class);
}

答案 2 :(得分:1)

嗯,这不起作用,因为如果你试图在后退按钮上调用或显示一个对话框,即,要求一个,现在跟踪Chrome自定义选项卡的关闭是不可能的。确认。 那么你可以通过你的活动来处理它们(这是在第一个位置启动它)但是这不是你想要的。 但如果有人确实找到了解决方案,那么请在下面评论。