2014-06-05 2 views
2

Le problème est lorsque j'installe l'application et l'utilise, il montre le badge de comptage sur l'icône de l'application. Désormais, lorsque je désinstalle l'application (alors que le badge de comptage est affiché sur l'icône de l'application), et que je réinstalle l'application, le compte de badge s'affiche à nouveau sur l'icône de l'application.Comment effacer le compte de décompte après avoir effacé les données et désinstaller l'application dans Android?

(Note: - Il iss montrant dernier décompte badge lorsque l'application a été désinstallée)

Mon problème est:

  1. Pourquoi compter badge est affiché après l'application réinstallant?

  2. La désinstallation d'une application n'efface-t-elle pas toutes ses données? Puis-je effacer le nombre de badges lorsque je désinstalle l'application?

Si ce n'est pas possible, alors quelqu'un peut-il me fournir un lien pour le même?

enter image description here

I intégré nombre de badges avec l'aide du lien suivant: -

How to interface with the BadgeProvider on Samsung phones to add a count to the app icon?

+0

comment avez-vous ajouter le badge? Si l'application n'a jamais été exécutée, après avoir été réinstallée, vous ne recevez aucune notification avant sa première exécution. Vous ne pouvez donc pas effacer le badge. J'ai le même problème avec iOS. L'idée ici est, que l'utilisateur ne désinstalle/réinstalle pas souvent comme un développeur –

+0

est-ce votre application? Les «badges» peuvent être des données que l'application utilise, stockées sur une carte SD quelque part. Cela signifie quelque chose. Votre question est très difficile à comprendre. – Doomsknight

+0

@Doomsknight il signifie que quand il a mis le badge, puis désinstallé, puis réinstallé, l'application devrait être "propre", mais le badge apparaît –

Répondre

1

Le lien question/vous répondez a fait la réponse sur la façon de supprimer des badges.

ContentValues cv = new ContentValues(); 
cv.put("badgecount", 0); 
getContentResolver().update(Uri.parse("content://com.sec.badge/apps"), cv, "package=?", new String[] {getPackageName()}); 

https://stackoverflow.com/a/20136484/940834

Donc, il suffit d'appeler cette méthode appropriée pour effacer le badge. Par exemple, vérifiez si vous chargez l'application pour la première fois depuis la dernière installation, puis appliquez-la.

// CHECK IF FIRST LOAD 
    if(!PreferenceManager.getDefaultSharedPreferences(this).contains("NOTFIRSTLOAD")) 
{ 
     ContentValues cv = new ContentValues(); 
     cv.put("badgecount", 0); 
     getContentResolver().update(Uri.parse("content://com.sec.badge/apps"), cv, "package=?", new String[] {getPackageName()}); 

     // Store that its not first load 
     PreferenceManager.getDefaultSharedPreferences(this).edit().putInt("NOTFIRSTLOAD", 1).commit(); 
    } 

Lire question/réponse d'origine pour plus d'informations

+0

déjà utiliser cette méthode mais la méthode ci-dessus fonctionne bien si l'utilisateur ouvre l'application en même temps. Si l'utilisateur fait et va à l'écran d'accueil, puis afficher des badges. – duggu

Questions connexes