Home » Android » android – Callback on dismiss of chrome custom tabs

android – Callback on dismiss of chrome custom tabs

Posted by: admin June 15, 2020 Leave a comment

Questions:

I have an activity ‘A’ and inside that activity, I have opened a chrome custom tab. Now when the user closes the chrome custom tab I want to open another activity ‘B’. Is there a way to know when the chrome custom tabs has been closed. Or any other way to solve the above problem.

How to&Answers:

You could keep track that Custom Tabs was opened on a boolean variable on Activity A.

private boolean mCustomTabsOpened = false;

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

Then, use Activity A’s onResume() to launch Activity B

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

You may want to use the KeepAliveService to prevent ActivityA from being destroyed, as illustrated here

Answer:

In Activity A you launch the Chrome Custom Tab like this:

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);
}

And in onActivityResult your check for that request code:

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

Answer:

well, this doesn’t work, because it’s not possible as per now to track the closing of chrome custom tab, if you are trying to call or display a dialog box on hit of back button, i.e., to ask for a confirmation.
Well you can handle them over your activity (which is launching it at the first place) but that’s not what you want i think.
But if anyone does find the solution then please comment below.