2016-12-07 2 views
3

활동이 'A'이고 그 활동 내에서 크롬 맞춤 탭을 열었습니다. 이제 사용자가 크롬 맞춤 탭을 닫으면 다른 활동 'B'를 열고 싶습니다. 크롬 사용자 정의 탭이 닫힌시기를 알 수있는 방법이 있습니까? 또는 위의 문제를 해결하는 다른 방법.크롬 맞춤 탭 해제 콜백

답변

3

당신은 사용자 정의 탭이

private boolean mCustomTabsOpened = false; 

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

그런 활동 A에 부울 변수에 열린 것을 추적 할 수있는, 활동 A의 onResume()

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

당신은 사용할 수 있습니다 활동 B를 실행하는 데 사용 그림과 같이 ActivityA가 파괴되는 것을 막기위한 KeepAliveService here

+0

감사합니다. @andreban, 내 문제를 해결했습니다. – princerk

+0

이것이 올바른 링크라고 생각합니다 (파일이 게시 된 이후로 변경되었습니다) : https://github.com/GoogleChrome/custom-tabs-client/blob/a9f1a9b6cb4b52df31aba79813029afec4f570e0/Application/src/main/java/org/chromium /customtabsclient/MainActivity.java#L190 –

4

활동 A에서 Chrome Custom 이 같은 탭 :

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

아니라,이 작동하지 않습니다 탭을 클릭하거나, 뒤로 버튼을 눌렀을 때 대화 상자를 호출하거나 표시하려는 경우, 즉 확인을 요청할 수 있습니다. 글쎄, 너는 너의 활동 (처음에 그것을 시작하고있다)에 그들을 처리 할 수있다. 그러나 그것은 내가 생각하기를 원하는 것이 아니다. 하지만 누구든지 해결책을 찾지 못하면 아래에서 의견을 말하십시오.