0

J'appelle un onglet personnalisé Chrome de mon activité et je souhaite pouvoir revenir à mon application après l'ouverture d'une certaine page sur mon onglet personnalisé sans que l'utilisateur clique sur le bouton "X". " bouton. Pour ce faire, j'ai ajouté un filtre d'intention sur mon activité (la même activité qui a appelé l'onglet personnalisé), et lorsque cette page est ouverte, elle redirige vers cette activité sur mon application.Envoyer un onglet personnalisé Chrome à l'arrière-plan

Maintenant, le problème est que l'onglet personnalisé reste en haut. Si je ferme manuellement mon onglet personnalisé, je vois que l'activité a reçu la réponse et fonctionne comme prévu, mais mon activité ne vient pas au premier plan.

Des idées pour lesquelles cela se passe-t-il, et comment y remédier?

Je suis conscient que pour l'instant il n'y a aucun moyen de FERMER un onglet personnalisé par programmation. Tout ce que je veux faire est d'envoyer l'onglet personnalisé à l'arrière-plan et amener mon activité au sommet.

onglet Mon code personnalisé d'invocation:

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

Mon manifeste d'activité:

<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> 

Répondre

1

Lors de la détection de la page dans votre activité, essayez de mettre l'activité sur le dessus (plutôt que l'onglet personnalisé Chrome le fond) comme ceci:

// 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

Est-ce que ma réponse vous a aidé? Veuillez cliquer sur la coche verte pour accepter la réponse si cela vous a aidé. – Nisalon