J'ai une préférence partagée qui active interstitielle après chaque tiers action dans l'application. Je veux que SharedPreferences puisse effacer les paramètres lorsqu'un utilisateur quitte l'application afin que l'interstitial puisse charger après chaque démarrage de l'application. S'il vous plaît aider.
5 Réponses :
Mettez votre nettoyage (nettoyage des préférences partagé) dans la méthode code d'échantillon: p> OnDestroy () CODE>, il s'agit de la dernière méthode appelée avant la fermeture d'une activité. Pour toutes les informations sur le cycle de vie d'activité Android, consultez la documentation Android de: Activité Lifecycle .
Pouvez-vous me montrer un exemple spécifique de comment faire du code? Merci
Ce n'est pas la bonne solution au problème, existe-t-il une autre suggestion ou solution? Merci!
Mettez votre code sur le OnDestroy () Code> Comme @jande a dit. En effet, c'est la dernière méthode qui est appelée avant qu'une activité soit "détruite". Le code pour supprimer toutes vos préférences partagées est la suivante:
SharedPreferences pref = getSharedPreferences(PREF_ID, Context.MODE_PRIVATE);
pref.edit.clear().apply();
mettre cette dépendance dans votre puis dans votre classe d'application, utilisez ceci: p> Mettez à jour votre fichier androidmanifest.xml: p> build.gradle code> fichier:
protected void onDestroy() { super.onDestroy(); SharedPreferences admob = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = admob.edit(); editor.clear(); editor.apply(); // or editor.commit() if on older API versions }
Ondestroy est moins susceptible d'être appelé. Il n'est pas garanti que cela serait appelé à chaque fois.
Ce n'est pas la bonne solution au problème, existe-t-il une autre suggestion ou solution? Merci!
Vous pouvez supprimer vos préférences partagées selon vos besoins, mais avant cette étude du cycle de vie d'activité vous aiderait à trier le problème. Comme si vous souhaitez supprimer les données lorsque l'application passe en arrière-plan, vous devez effacer les préférences de la méthode Onpaause ()
J'ai une préférence partagée qui active interstitielle après chaque tiers action dans l'application. Je veux que SharedPreferences puisse effacer les paramètres lorsqu'un utilisateur quitte l'application afin que l'interstitial puisse charger après chaque démarrage de l'application. S'il vous plaît aider. P>
à la place de penser à la fois en arrière et d'essayer de nettoyer les
SharedPreferences code> à la fin de votre application, pourquoi ne réinitialisez-vous pas simplement le
SharedPreferences code> au démarrage? C'est plus de solution plus propre pour votre cas. P>
Vous ne pouvez pas dépendre de
OnDestroy () CODE> Méthode pour nettoyer les préférences SharedPReFerences car Il n'y a aucune garantie que cela sera appelé L'application est terminée. strong> p>
Donc, vous pouvez facilement résoudre le problème facilement par réinitialiser les préférences partagées lorsque vous démarrez votre activité associée: P>
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... SharedPreferences pref = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = pref.edit(); // reset the counter editor.putInt(COUNTER_INTERSTITIAL_ADS, 0); editor.apply(); ... }
Cette idée a du sens, mais cela ne fonctionne pas, comment intégrer cette ligne de code qui réinitialise le compteur: admob.edit (). Supprimer (compteur_interstitial_ads) .Apply (); code> pouvez-vous donner moi un exemple spécifique? Merci.