Как очистить значок счетчика после очистки данных и удаления приложения в Android?

Проблема в том, что когда я устанавливаю приложение и использую его, оно показывает значок счетчика на значке приложения. Теперь, когда я удаляю приложение (в то время как значок счетчика отображается на значке приложения) и переустанавливаю приложение, он снова показывает количество значков на значке приложения.

(Примечание: последнее количество значков не отображается, когда приложение было удалено)

Моя проблема:

  1. Почему после переустановки приложения отображается количество значков?

  2. Удаление приложения не очищает все его данные?

  3. Могу ли я сбросить счетчик значков при удалении приложения?

Если это невозможно, то может ли кто-нибудь дать мне ссылку на то же самое?

введите здесь описание изображения

Я интегрировал счетчик значков с помощью следующей ссылки: -

Как интерфейс с BadgeProvider на телефонах Samsung, чтобы добавить счетчик к значку приложения?


person duggu    schedule 05.06.2014    source источник
comment
как ты добавил значок? если приложение никогда не запускалось, после переустановки вы не получите никаких уведомлений до тех пор, пока оно не запустится в первый раз, поэтому вы не сможете очистить значок. У меня такая же проблема с iOS. Идея здесь в том, что пользователь не часто удаляет/переустанавливает, как это делает разработчик.   -  person Lena Bru    schedule 05.06.2014
comment
это твое приложение? Значки могут быть данными, которые использует приложение, хранящимися где-то на SD-карте. Это что-то значит. Ваш вопрос очень трудно понять.   -  person IAmGroot    schedule 05.06.2014
comment
@Doomsknight он имеет в виду, что когда он повесил значок, затем удалил, а затем переустановил, приложение должно быть чистым, но значок появляется   -  person Lena Bru    schedule 05.06.2014
comment
@LenaBru да ты прав   -  person duggu    schedule 05.06.2014
comment
@LenaBru Значок под номером 6 на картинке примера? Это могут быть не постоянные данные приложения (которые удаляются при удалении), а постоянные данные файла.   -  person IAmGroot    schedule 05.06.2014
comment
Данные, которые вы используете для добавления на значки, не удаляются после сохранения. Итак, при новой установке вы должны проверить это. Если он существует, удалите/очистите эти значения/данные/файлы.   -  person Kanak Sony    schedule 05.06.2014
comment
Насколько я знаю, Google Play не дает никаких уведомлений о новой установке. ты знаешь иначе?   -  person Lena Bru    schedule 05.06.2014
comment
Вы можете хранить в Shared Prefs независимо от того, запускалось ли приложение раньше или нет.   -  person IAmGroot    schedule 05.06.2014
comment
@Doomsknight, когда вы переустанавливаете приложение поверх существующего. Если приложение еще не запущено. останется прежнее состояние. но приложение ничего не может с этим поделать   -  person Lena Bru    schedule 05.06.2014
comment
@Golu, как ты отобразил значок?   -  person Lena Bru    schedule 05.06.2014
comment
Это обновление приложения .. не переустановка ( Удалить -> установить ). Так что это не проблема   -  person IAmGroot    schedule 05.06.2014
comment
я просто удаляю приложение и устанавливаю снова @Doomsknight   -  person duggu    schedule 05.06.2014
comment
@Doomsknight, можете ли вы уточнить больше, это не проблема?   -  person duggu    schedule 05.06.2014
comment
@Doomsknight смотрите мой обновленный вопрос   -  person duggu    schedule 05.06.2014
comment
Вы должны где-то хранить счетчик Badge. Удалите этот счетчик... Используйте общие настройки, чтобы определить, запускается ли его приложение в первый раз после установки, чтобы знать, когда удалить счетчик.   -  person IAmGroot    schedule 05.06.2014
comment
@Doomsknight показывает значки при вызове API, и если значки больше нуля, то у меня отображаются значки.   -  person duggu    schedule 05.06.2014


Ответы (1)


Вопрос / ответ, на который вы ссылаетесь, на самом деле содержит ответ о том, как очистить значки.

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

Поэтому просто вызовите этот метод соответствующим образом, чтобы очистить значок.

Например, проверьте, загружается ли приложение впервые после новой установки, а затем примените его.

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

Прочтите оригинальный вопрос/ответ для получения дополнительной информации

person IAmGroot    schedule 05.06.2014
comment
уже используют этот метод, но описанный выше метод отлично работает, если пользователь открывает приложение одновременно. Если пользователь закончил и переходит на главный экран, то показывает значки. - person duggu; 06.06.2014