0
votes

Lorsque vous quittez l'application, SharedPreferences doit être supprimée

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


0 commentaires

5 Réponses :


2
votes

Mettez votre nettoyage (nettoyage des préférences partagé) dans la méthode OnDestroy () , 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 .

code d'échantillon: xxx


2 commentaires

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!



0
votes

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


0 commentaires

1
votes

mettre cette dépendance dans votre build.gradle fichier: xxx

puis dans votre classe d'application, utilisez ceci: xxx

Mettez à jour votre fichier androidmanifest.xml: xxx


0 commentaires

0
votes
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
}

3 commentaires

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



0
votes

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

    ...

}


1 commentaires

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 (); pouvez-vous donner moi un exemple spécifique? Merci.