0

自分のアクティビティからChromeのカスタムタブを呼び出し、「X」をクリックせずにカスタムタブで特定のページを開いた後にアプリに戻ることができるようにしたい"ボタンをクリックします。Chromeのカスタムタブをバックグラウンドに送信

これを行うには、自分のアクティビティ(カスタムタブを呼び出したのと同じアクティビティ)にインテントフィルタを追加しました。そのページを開くと、自分のアプリのそのアクティビティにリダイレクトされます。

問題は、カスタムタブが上部にとどまることです。カスタムタブを手動で閉じると、アクティビティが応答を受け取り、期待どおりに動作していることがわかりますが、私のアクティビティはフォアグラウンドにはなりません。

これがなぜ起こっているのか、これを解決する方法はありますか?

今のところ、カスタムタブをプログラムで閉じることはできません。私がしたいのは、カスタムタブをバックグラウンドに送り、私の活動をトップに持っていくことだけです。

マイカスタムタブの呼び出しコード:

CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder() 
    .setShowTitle(true) 
    .setToolbarColor(getToolBarColor()) 
    .setStartAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right) 
    .setExitAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right) 
    .build(); 

customTabsIntent.launchUrl(this, Uri.parse(url)); 

私の活動のマニフェスト:

<activity 
    android:name="com.xyz.sdk.SomeActivity" 
    android:allowTaskReparenting="true" 
    android:configChanges="keyboardHidden|orientation|keyboard|screenSize" 
    android:launchMode="singleTask" 
    android:noHistory="true" 
    android:theme="@android:style/Theme.NoTitleBar"> 
    <intent-filter> 
     <data android:scheme="someString-${applicationId}" /> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
    </intent-filter> 
</activity> 

答えて

1

あなたの活動のページを検出すると、むしろクロームカスタムタブ内よりも、(上の活動を入れてみてください背景:)

// Launch activity again 
Intent intent = new Intent(this, A.class); 
// Setting CLEAR_TOP ensures that all other activities on top of A will be finished 
// and setting SINGLE_TOP ensures that a new instance of A will not 
// be created (the existing instance will be reused and onNewIntent() will be called) 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(intent); 
+0

私の答えはあなたを助けましたか?それが助けになったら、緑色のチェックマークをクリックして答えを受け入れてください。 – Nisalon

関連する問題